確實(shí)需要獲取位置信息的货徙,還是需要聲明
Location
相關(guān)權(quán)限
Android 12 及以上妇萄,僅需配置
BLUETOOTH_SCAN
槽畔,并聲明android:usesPermissionFlags="neverForLocation"
Android 9(API 28) 以上趾浅,需要聲明
BLUETOOTH
,BLUETOOTH_ADMIN
及ACCESS_FINE_LOCATION
闰挡,參考官方文檔Android 9(API 28) 及以下举娩,可以聲明
ACCESS_COARSE_LOCATION
或者ACCESS_FINE_LOCATION
析校,推薦ACCESS_COARSE_LOCATION
綜合起來(lái),AndroidManifest文件為:
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30"/>
<!-- 安卓9及以下可以使用模糊定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
android:maxSdkVersion="28"/>
<!-- 安卓10铜涉,11需要使用精準(zhǔn)定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
tools:targetApi="q"
android:maxSdkVersion="30"/>
<!-- Needed only if your app looks for Bluetooth devices.
You must add an attribute to this permission, or declare the
ACCESS_FINE_LOCATION permission, depending on the results when you
check location usage in your app. -->
<!-- 安卓12及以上智玻,不需要定位-->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
<!-- Needed only if your app communicates with already-paired Bluetooth
devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />