Android 12 扫描蓝牙设备 Need android.permission.BLUETOOTH_SCAN permission
💡
原文中文,约3800字,阅读约需10分钟。
📝
内容提要
Android 12 系统上真机执行 BLE 蓝牙设备扫描时,APP 崩溃,Logcat 报错:需要 android.permission.BLUETOOTH_SCAN 权限。在 Activity 的生命周期中,onResume 是在 onStart 之后执行的,添加权限申请之后,再次打开 APP,就会看到弹窗提示申请权限授权,ActivityCompat.requestPermissions 这种弹窗确认操作,通常是异步执行的,onRequestPermissionsResult 回调可以判断权限是否获取成功,当权限获取成功时,onResume 被自动触发。
🎯
关键要点
- 在 Android 12 系统上执行 BLE 蓝牙设备扫描时,APP 崩溃,报错需要 android.permission.BLUETOOTH_SCAN 权限。
- Activity 的生命周期中,onResume 在 onStart 之后执行。
- 需要在 manifest 中添加蓝牙相关权限,包括 BLUETOOTH_SCAN。
- 在 startNodeDiscovery() 函数中检查并申请蓝牙权限。
- ActivityCompat.requestPermissions 是异步执行的,需实现 onRequestPermissionsResult 回调来处理权限申请结果。
- 权限申请成功后,onResume 会被自动触发,可能导致自动扫描。
- 权限提示信息可能引起用户误解,以为是在申请定位信息,而非蓝牙连接。
🏷️
标签
➡️