
最近公司有个蓝牙锁的需求,在安卓9的手机上测试都正常,但是在安卓12以上和鸿蒙4.0以上手机会出现崩溃问题。搜了一下解决方案,大多都是compileSdkVersion升级到31以上,加入API31中的新蓝牙权限就行了,本来很简单的,但是公司工程比较旧,升级31后各种编译失败,只能另谋出路了,解决方案很简单,记录一下,防止下次遇到相似的问题。
if (Build.VERSION.SDK_INT >= 31) {
new RxPermissions(this).request("android.permission.BLUETOOTH"
, "android.permission.BLUETOOTH_CONNECT"
, "android.permission.BLUETOOTH_SCAN")
.subscribe(s -> {
});
}
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH" />