Skip to content
阅读进度

蓝牙权限怎么按版本处理? ​

返回 网络与设备通信 目录

标准回答 ​

必须一起看设备系统版本、应用 targetSdk 和具体 API。对现代目标版本,Android 12 起常用 BLUETOOTH_SCAN 和 BLUETOOTH_CONNECT;需要广播能力时再考虑 BLUETOOTH_ADVERTISE。旧系统扫描还需按适用规则处理定位权限与相关设置。(蓝牙权限)

适用条件重点处理不能忽略的边界
旧系统 BLE 扫描旧蓝牙权限与相应定位授权API 级别 前后台和定位开关有差异
Android 12 及以上且 targetSdk 至少 31按功能申请 SCAN CONNECT ADVERTISE清单声明和运行时授权都要处理
扫描不推导位置可按事实使用 neverForLocation部分 BLE beacon 可能被过滤
用户拒绝 撤销权限或关闭蓝牙输出明确状态并允许恢复不能只在初始化时检查一次

延伸追问 ​

SDK 可以自己弹权限框吗?纯通信 SDK 更适合报告缺少的能力并提供接入说明,由宿主在合适交互时机申请。若 SDK 提供 UI 封装,也要明确 Activity 生命周期和重复请求处理。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。