美文网首页
记录一个Android12上的蓝牙权限问题

记录一个Android12上的蓝牙权限问题

作者: 100个大西瓜 | 来源:发表于2023-10-06 12:34 被阅读0次

Android上使用蓝牙的官方文档 https://developer.android.google.cn/guide/topics/connectivity/bluetooth?hl=zh_cn

在Android12上蓝牙的权限更新了,在动态申请时变成了 “附近的设备”相关的权限。
测试工程师发现了一个问题:在手机授予相关的蓝牙权限后,在设置中对已经授予的权限进行取消后,Android应用在代码中通过

PackageManager.PERMISSION_GRANTED == ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT);
PackageManager.PERMISSION_GRANTED == ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN);

都无法获取真正的蓝牙权限状态,除非卸载后重装首次判断,否则就是或者不到正确的状态,导致在使用蓝牙时因缺乏蓝牙相关的权限导致崩溃。
这确实很不符合以往对危险权限的理解。制作一个demo,使用的都是默认的配置的,包括
targetSdkVersion 与 compileSdkVersion
经过验证发现在demo上就很正常,而在项目中就是不行。
后来经过仔细排查,发现
demo上的配置如下

  targetSdkVersion 31
  compileSdkVersion 31

而在项目中

  targetSdkVersion 28
  compileSdkVersion 31

意味着既有的项目没有适配Android12,修改为31之后解决了;同时又引如了新的问题,如Toast在部分手机上会带应用的logo,通过自定义Toast来解决

相关文章

  • 一个教训

    这是一个关于targetSdkVersion的教训。 之前有用户反馈,在android12设备上,会报蓝牙权限适配...

  • Android12 蓝牙权限注意

    BLUETOOTH 和 BLUETOOTH_ADMIN权限已经被舍弃,被3个新权限代替啦BLUETOOTH_CON...

  • 蓝牙开发基础设置

    1.需要的权限 第一个权限是简单的打开蓝牙;第二个权限是搜索蓝牙、匹配蓝牙、蓝牙与蓝牙之间传递数据需要的权限 2....

  • Android蓝牙权限

    1. 蓝牙权限 蓝牙连接和通讯需要获取相关的蓝牙权限BLUETOOTH和BLUETOOTH_ADMIN。 蓝牙权限...

  • 蓝牙

    1.添加蓝牙的使用权限 //管理蓝牙的权限 //使用蓝牙的权限 2.蓝牙的搜索、配对;这些很容易操作,在这里不做过...

  • Ble扫描和Gatt通信(2022兼容多sdk版本)

    Ble扫描 Ble权限适配 权限问题点总结: 如何适配不同sdk版本,以确保获取到蓝牙权限? 如何过谷歌权限隐私审...

  • iOS 和 Android ble 对比

    常见问题:1 权限问题 iOS 只需要申请 蓝牙权限即可,而Android还需要申请定位权限2 初始化 都需要判...

  • Android ble低功耗蓝牙开发-服务端

    BLE权限 首先,需要在manifest中声明使用蓝牙和操作蓝牙的权限在应用程序清单文件中声明蓝牙权限。 如果您要...

  • 微信小程序蓝牙授权多次弹出问题

    以下两个方法都会获取蓝牙权限(推荐第一个获取蓝牙权限,第二个主要是判断蓝牙是否打开) 方法一: 方法二:

  • React-native 安卓运行报错

    问题: 在谷歌上找到是权限问题,记录一笔,解决方法如下:

网友评论

      本文标题:记录一个Android12上的蓝牙权限问题

      本文链接:https://www.haomeiwen.com/subject/arwpbdtx.html