安卓开发问题:安卓Ble出现动态鉴权失败以及扫描设备一直进入不了的问题

问题1描述

1、安卓12需要动态鉴权

// 鉴权函数           
requestPermissions(permissionsList.toArray(strings), MyConstants.REQUEST_CODE_PERMISSIONS);

但是在鉴权回调函数中如Manifest.permission.BLUETOOTH_SCANManifest.permission.BLUETOOTH_CONNECT一直显示失败,即如下鉴权回调中,grantResults返回的值是-1

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) 

问题1原因分析

因为Manifest.permission.BLUETOOTH_SCANManifest.permission.BLUETOOTH_CONNECT是在安卓12版本的系统上才有的,而以下版本是没有的,如果在安卓12版本以下去动态鉴权这些权限,那肯定是会失败

问题1部分解决方案

参看其他博客解决方案就是分开鉴权。但是存在搜索设备失败问题,即问题2

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
//这里是安卓12的权限
     permissions.add(Manifest.permission.BLUETOOTH_SCAN);
     permissions.add(Manifest.permission.BLUETOOTH_ADVERTISE);
     permissions.add(Manifest.permission.BLUETOOTH_CONNECT);
   }else{
   //这是其他的
	 permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
	 permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
   }
            

问题2解决

对于安卓12也需要添加定位相关权限,而其他不需要添加安卓12要求的权限

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
//这里是安卓12的权限
     permissions.add(Manifest.permission.BLUETOOTH_SCAN);
     permissions.add(Manifest.permission.BLUETOOTH_ADVERTISE);
     permissions.add(Manifest.permission.BLUETOOTH_CONNECT);
   }
	 permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
	 permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
   
            

相关推荐

  1. 11重力感应灵敏问题

    2024-05-10 13:08:03       34 阅读
  2. 解决手机系统文件夹看不到问题

    2024-05-10 13:08:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-10 13:08:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-10 13:08:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-10 13:08:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-10 13:08:03       18 阅读

热门阅读

  1. 周口电力乙级资质认证与企业长远发展规划

    2024-05-10 13:08:03       9 阅读
  2. [力扣题解] 216. 组合总和 III

    2024-05-10 13:08:03       12 阅读
  3. PostgreSQL的pg_dump和 pg_dumpall 异同点

    2024-05-10 13:08:03       14 阅读
  4. 使用Python实现循环神经网络(RNN)的博客教程

    2024-05-10 13:08:03       10 阅读