在Android6.0发布版(API 23)中,我注意到BluetoothLeScanner.startScan()需要新的权限;ACCESS_COARSE_LOCATION和/或ACCESS_FINE_LOCATION。有谁能解释一下背后的原因吗。为什么蓝牙 ScanResult需要位置权限?
有关此更改的更多信息可在以下位置找到:Android6.0更改:访问硬件标识符
提前谢谢你!
发布于 2015-10-07 15:01:34
这很可能是由于新的BTLE信标技术,如苹果的iBeacon或谷歌自己的Eddystone规范。这些是用于微定位服务的工具,因此应用程序可以使用这些工具来映射(非常精确)您所处的位置。考虑到这一点,粗糙和精细的位置权限似乎是合适的。
以下是来自AltBeacon的一些信息。
发布于 2016-10-21 22:10:09
这似乎是谷歌迈出的辉煌一步。然而,这是与谷歌推出的信标技术一起完成的。我找不到这方面的技术原因。这类似于Wifi扫描,这也需要设备的位置。谷歌似乎正在建立信标和无线网络的数据库,以便在其产品范围内使用它。这似乎是捕捉任何应用程序利用Beacon的全部数据。
https://stackoverflow.com/questions/32995558
复制相似问题