需要为 Android 10.0 上的低功耗蓝牙扫描启用定位

Gud*_*all 5 android bluetooth bluetooth-lowenergy android-10.0

将我的 Pixel XL 升级到 Android 10.0 版后,蓝牙低功耗 (BLE) 扫描仅在我打开位置功能时才有效。

直到现在这还不是问题,它可以在运行 Android 9.0、8.0 和 6.0.1 的多个设备上运行。

我的应用程序仅在前台使用 BluetoothLeScanner startScan(List<ScanFilter> filters, ScanSettings settings, ScanCallback callback)

我的应用程序具有 FINE_LOCATION、COARSE_LOCATION 和 BLUETOOTH 权限,我尝试添加 ACCESS_BACKGROUND_LOCATION 权限但没有运气。

Android 10.0 中是否有更严格的应用程序扫描蓝牙设备的要求,我找不到任何关于此的信息,我希望我不必要求用户打开位置以便我的应用程序工作。

You*_*eed 8

从 Android 10 开始,现在需要打开 ACCESS_FINE_LOCATION 才能执行蓝牙操作。这样做的原因是蓝牙可用于收集有关用户位置的信息(例如使用 BLE 信标),为此应声明相关的应用程序权限。

对于 Android 9 及更低版本, ACCESS_COARSE_LOCATION 就足够了,这可能是您的应用程序正常运行的原因。

更多信息可以在这里找到:-

我希望这有帮助。

  • 是的,但如果您的应用面向 Android 9(API 级别 28)或更低版本,则即使在 Android 10 上,您也可以继续使用 ACCESS_COARSE_LOCATION。 (3认同)