Android 是否需要 ACCESS_FINE_LOCATION 权限才能扫描蓝牙设备?

问题描述 投票:0回答:1

我不知道什么位置与蓝牙有关,但我的应用程序不会识别任何蓝牙设备,除非它被授予 ACCESS_FINE_LOCATION 权限。即使授予它 ACCESS_COARSE_LOCATION 也不起作用。

我不喜欢这种行为。我的应用程序与位置或跟踪无关,但现在我的用户必须接收并接受一个弹出窗口,请求访问精确位置的权限。我想很多用户会说“不”,然后不明白为什么该应用程序无法识别他们的蓝牙设备。

我错过了什么吗?

android android-bluetooth
1个回答
0
投票

尝试在蓝牙权限中强烈断言您的应用程序永远不会从蓝牙扫描结果中获取物理位置,如下所示:

<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
                 android:usesPermissionFlags="neverForLocation" />

因此,如果您没有明确声明位置权限,则如果没有声明,系统将阻止您识别任何蓝牙设备

尝试阅读文档的这一部分以获取更多信息:

https://developer.android.com/develop/connectivity/bluetooth/bt-permissions#assert-never-for-location

© www.soinside.com 2019 - 2024. All rights reserved.