我正在研究 BLE 蓝牙扫描,适用于除 Android 10 以外的所有设备。Android 10 无法正常工作,任何人都请回答扫描 BLE 蓝牙的第 10 版问题
原文由 raj.a 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在研究 BLE 蓝牙扫描,适用于除 Android 10 以外的所有设备。Android 10 无法正常工作,任何人都请回答扫描 BLE 蓝牙的第 10 版问题
原文由 raj.a 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答969 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答843 阅读✓ 已解决
2 回答955 阅读
2 回答892 阅读
1 回答830 阅读
2 回答696 阅读
要使 BLE 扫描适用于针对 Android 10 的 Android 应用程序,您需要向用户询问
与 ACCESS_FINE_LOCATION 一起,也不要忘记在清单中添加权限:
这是为什么的解释:
Android 10(API 级别 29)引入了许多功能和行为更改,以更好地保护用户隐私。这些变化扩大了用户对其数据以及他们赋予应用程序的功能的透明度和控制力。
简而言之,您的问题:
为了支持用户对应用访问位置信息的额外控制,Android 10 引入了 ACCESS_BACKGROUND_LOCATION 权限。
与 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 权限不同,ACCESS_BACKGROUND_LOCATION 权限仅影响应用程序在后台运行时对位置的访问。除非满足以下条件之一,否则应用程序将被视为正在后台访问位置:
属于该应用程序的活动是可见的。该应用正在运行已声明前台服务类型位置的前台服务。
要在您的应用中声明服务的前台服务类型,请将您应用的 targetSdkVersion 或 compileSdkVersion 设置为 29 或更高。了解有关前台服务如何继续用户启动的需要访问位置的操作的更多信息。
希望这能解决您的问题 :)