编辑
2025-06-25
编程
00
请注意,本文编写于 168 天前,最后修改于 168 天前,其中某些信息可能已经过时。

在做室内蓝牙定位的项目时遇到了一个问题,使用高版本Android系统的手机死活搜索不到我自己的蓝牙beacon信标,但是奇怪的是其他的蓝牙设备能够正常发现。

然后发现Android12+版本更新了蓝牙权限的说明。所以正确的权限声明应该是这样。 如果添加了 android:usesPermissionFlags="neverForLocation" 会过部分蓝牙信标,很不幸,我的蓝牙信标就被过滤掉了=。=

官方文档链接:https://developer.android.google.cn/develop/connectivity/bluetooth/bt-permissions?hl=zh-cn#assert-never-for-location

xml
<!-- 蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- Android 12+ 新权限 --> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />

本文作者:SpikeXiong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!