公司项目用到蓝牙功能,在实际使用者中偶尔会遇到一些手机无法搜索到蓝牙设备,但是用户在系统设置的蓝牙搜索时是可以搜索到,今天机缘巧合的解决掉了,记录一下

  • 手机型号: 红米9A
  • 系统版本: MIUI12.0.16 本来系统版本比这个稍低,稍微升级了一点

蓝牙概览 | Android 开发者 | Android Developers 中,按照官方说法在权限中需要申请

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

  <!-- If your app targets Android 9 or lower, you can declare
       ACCESS_COARSE_LOCATION instead. -->
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  ...
</manifest>

但是如果只申请这些的话在某些设备会搜索不到蓝牙设备,解决方案就是增加一个权限

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