为什么Android Marshmallow以后的Ble扫描需要位置权限

时间:2017-01-18 10:06:25

标签: android gps bluetooth-lowenergy

使用最新版本的Android Marshmallow,启动蓝牙低功耗扫描需要位置组的许可。 因此,需要以下权限之一:

ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION

为什么我们需要为GPS扫描启用BLE

2 个答案:

答案 0 :(得分:6)

BLE信标可用于获取位置信息,仅使用BLE广播UUID数据和互联网连接(例如iBeacon,AltBeacon等)。由于这是可能的并且数据可以通过扫描获取,因此位置许可是必须的。实际上,ACCESS_COARSE_LOCATION是获得NetworkProvider级权限所需的级别。通过使用ACCESS_FINE_LOCATION,您获得NetworkProvider以及GPS。

答案 1 :(得分:2)

蓝牙权限允许您在没有位置权限的情况下扫描前景中的信标,但对于后台扫描,您需要启用位置权限。 如果您要添加此权限

<uses-permission android:name="android.permission.BLUETOOTH" />  
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

然后 您还必须使用此权限

 <uses-permission
 android:name="android.permission.ACCESS_COARSE_LOCATION”/>
 <uses-feature android:name="android.hardware.location.gps" />

请参阅开发者指南here