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

React Native 0.66 Android11 蓝牙权限不在应用设置显示如何解决

问题原因
  • BLUETOOTH、BLUETOOTH_ADMIN属于Android系统定义的普通权限,只要在AndroidManifest.xml中完成声明,应用安装时会自动获取授权,不需要动态申请,也不会在系统应用权限管理页面展示,属于正常逻辑。
  • React Native 0.66版本的PermissionsAndroid.PERMISSIONS枚举没有收录BLUETOOTH、BLUETOOTH_ADMIN这两个值,你传入不存在的枚举值调用申请接口,自然会抛出permission is null错误。
解决方案

基础蓝牙功能使用场景

直接删除动态申请BLUETOOTH、BLUETOOTH_ADMIN权限的代码即可,只要Manifest中已经声明,就可以直接调用蓝牙相关基础能力。

蓝牙扫描/连接/广播场景适配

  1. 你的测试设备是Android 11(API 30),使用蓝牙扫描能力只需要保证已经拿到定位权限,且设备定位开关处于开启状态即可正常使用。
  2. 如果后续需要适配Android 12及以上系统版本,需要做如下修改:
    • 放开AndroidManifest.xml中被注释的三个蓝牙权限声明:
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
    
    • 动态申请时,改为申请以上三个新增的蓝牙权限即可,这三个权限属于危险权限,PermissionsAndroid.PERMISSIONS枚举中有对应值,可以正常申请。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:15:04