You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android12拒绝Nearby Devices权限后BLUETOOTH_CONNECT仍显示已授权问题

问题原因
  • 最常见的原因是应用的targetSdkVersion低于31(Android 12版本):这是Android系统的向后兼容机制,对于未适配Android 12的应用,即使你手动关闭了「附近设备」权限,调用checkSelfPermission检查BLUETOOTH_CONNECT等Android 12新增蓝牙权限时,系统依然会返回PERMISSION_GRANTED,只有当你实际调用蓝牙相关API时,才会触发权限拦截,抛出SecurityException或者返回空结果。
  • 极小概率是厂商定制ROM的权限映射逻辑异常,导致设置页的权限状态和系统实际返回的校验结果不匹配。
修复方案
  • 优先将应用的targetSdkVersion升级到31及以上,只有适配了Android 12的应用,新蓝牙权限的校验逻辑才会完全生效,设置页修改权限后校验结果会同步更新。
  • 不要依赖权限组NEARBY_DEVICES的校验结果,Google官方明确不建议直接校验权限组,不同厂商对权限组的映射规则可能存在差异,要单独校验你实际使用到的运行时权限。
  • 补充蓝牙API调用时的异常捕获逻辑,即使权限校验通过,也需要捕获SecurityException异常,出现异常时再引导用户到权限设置页开启对应权限,覆盖兼容场景和特殊异常情况。
  • 如果你已经适配Android 12还是出现该问题,可以在申请权限时将你用到的所有附近设备相关权限一起申请,比如用到扫描就添加BLUETOOTH_SCAN,用到设备广播就添加BLUETOOTH_ADVERTISE,避免单权限申请出现的状态不同步问题。
是否为系统层面Bug

绝大多数场景下不是系统Bug,都是targetSdkVersion不匹配触发的系统兼容逻辑,只有极少部分定制ROM的权限管理模块存在异常,才会出现权限状态不同步的问题,这种情况可以向对应厂商反馈修复。

内容的提问来源于stack exchange,提问作者Ayohaych

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:36:04