美文网首页
记录一个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来解决

    相关文章

      网友评论

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

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