2017-01-18 43 views
4

使用名爲Marshmallow的Android的最新版本,啓動藍牙低功耗掃描需要位置組的許可。 如下面的權限中的一個的結果是必需的:爲什麼必須在Android Marshmallow中進行Ble掃描的位置權限

ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION

任何原因,我們需要在GPS開關BLE掃描?

+0

[地點可能的複製需要在Android 6.0上啓用藍牙低能耗掃描](https:// stackover流量/問題/ 33045581/location-needs-to-be-enabled-for-bluetooth-low-energy-scanning-on-android-6-0) –

+0

此問題已在此主題上的正確答案.. https:/ /stackoverflow.com/questions/33045581/location-needs-to-be-enabled-for-bluetooth-low-energy-scanning-on-android-6-0 –

回答

6

BLE信標只能使用BLE廣播UUID數據和互聯網連接(例如iBeacon,AltBeacon等)獲取位置信息(因爲這是可能的,並且可以通過掃描獲取數據)位置是必需的。在現實中,ACCESS_COARSE_LOCATION是獲得NetworkProvider權限級別所需的級別。通過使用,ACCESS_FINE_LOCATION你得到NetworkProvider以及GPS。

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