我正在研究 BLE 蓝牙扫描正在除 Android 10 之外的所有设备上工作。Android 10 无法正常工作,请任何人回答有关扫描 BLE 蓝牙的版本 10 问题的问题
最佳答案
要使 BLE 扫描适用于针对 Android 10 的 Android 应用程序,您需要询问用户
ACCESS_BACKGROUND_LOCATION
连同 ACCESS_FINE_LOCATION 并且不要忘记在 list 中添加权限:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
以下是原因的解释:
Android 10(API 级别 29)引入了许多功能和行为更改,以更好地保护用户的隐私。这些变化扩大了用户对其数据的透明度和控制权,以及他们赋予应用程序的功能。
简而言之,您的问题:
Access to device location in the background requires permission
为了支持用户对应用程序访问位置信息的额外控制,Android 10 引入了 ACCESS_BACKGROUND_LOCATION允许。
不同于 ACCESS_FINE_LOCATION和 ACCESS_COARSE_LOCATION权限,ACCESS_BACKGROUND_LOCATION 权限仅影响应用在后台运行时对位置的访问。除非满足以下条件之一,否则应用程序被视为在后台访问位置:
属于该应用程序的 Activity 是可见的。
该应用程序正在运行已声明前台服务类型位置的前台服务。
要为应用中的服务声明前台服务类型,请将应用的 targetSdkVersion 或 compileSdkVersion 设置为 29 或更高。详细了解前台服务如何继续用户发起的需要访问位置的操作。
希望这可以解决您的问题:)
关于Android 10 不支持 BLE 蓝牙扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58428763/