首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在缺少权限时不调用BLE扫描回调

在缺少权限时不调用BLE扫描回调
EN

Stack Overflow用户
提问于 2020-07-30 22:46:58
回答 1查看 523关注 0票数 1

我使用的是三星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的内部日志

我希望识别由于缺少权限而发生的扫描失败。我该怎么做?

备注-我正在构建一个安卓库,而不是安卓应用程序,因此请提出相应的建议。

EN

回答 1

Stack Overflow用户

发布于 2020-07-31 07:21:47

有几件事是可能的。首先,对于BLE扫描,您需要许可定位和蓝牙。因此,在您的开发环境中,您需要指定这一点。例如,在android中,您需要进入清单,并对蓝牙和位置都给予具体的许可。见下文:

代码语言:javascript
复制
    <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时,您需要给予位置许可(并打开位置和蓝牙),然后扫描才能工作。

要允许定位到:

  • Settings
  • Your App
  • 找到您的应用程序
  • 应用程序info
  • Permissions
  • Allow位置许可

总之,检查IDE是否启用了权限。然后查看用户允许的应用程序(在电话上)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63182465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档