我使用的是三星Note 8(安卓9)和三星A50(安卓10)。
我正在做BLE扫描,这需要蓝牙以及位置权限(Android >=23)。我是,而不是,在开始扫描之前,提供应用程序的位置权限。
在对Note 8启动扫描时,当位置权限未被授予时,我将得到带有错误代码2 (SCAN_FAILED_APPLICATION_REGISTRATION_FAILED)的onScanFailed()回调。
在A50上启动扫描时,我不会收到任何回调。从adb日志中,我可以看到类似BluetoothUtils: Permission denial: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATIONpermission to get scan results 07-28 21:03:35.720 2010 2650 D的内部日志
我希望识别由于缺少权限而发生的扫描失败。我该怎么做?
备注-我正在构建一个安卓库,而不是安卓应用程序,因此请提出相应的建议。
发布于 2020-07-31 07:21:47
有几件事是可能的。首先,对于BLE扫描,您需要许可定位和蓝牙。因此,在您的开发环境中,您需要指定这一点。例如,在android中,您需要进入清单,并对蓝牙和位置都给予具体的许可。见下文:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />然而,这将是不够的,因为在您的手机应用程序,您将需要给予用户的许可。
当您正在运行android时,您需要给予位置许可(并打开位置和蓝牙),然后扫描才能工作。
要允许定位到:
总之,检查IDE是否启用了权限。然后查看用户允许的应用程序(在电话上)。
https://stackoverflow.com/questions/63182465
复制相似问题