用 React Native 开发 APP 的时候,需要和蓝牙设备交互,于是选了 React Native BLE Plx 这个库。
跟着说明将需要的权限在 AndroidManifest.xml
中配置完毕,回到设备中一执行,报错了,错误信息如下:
Device is not authorized to use BluetoothLE
查了网上的资料,唯有从这个 Issue 中得到了些灵感。
导致整个问题的原因,是 Android SDK 版本的安全性问题,在 SDK 23 及之前的版本,安全性不高,权限只需要在 AndroidManifest.xml
中配置就行了。而之后的版本,由于对安全性的提升,对敏感的权限需要开启 PermissionsAndroid 。
但接下来的问题是,我发现 PermissionsAndroid
里面并没有涉及开启 Bluetooth 的权限啊 😟。好在过了会想到现在一些需要连接蓝牙设备的 APP 都要求开启定位的权限,于是尝试着去开了 ACCESS_COARSE_LOCATION
权限。
再次运行,竟然成功了,这真的是 (ಥ _ ಥ) 啊~