Appearance
连接与设备:蓝牙绑定体系、安全测距、设备在场与健康数据平台
本页导读:Android 16 的连接故事线比界面篇更「系统级」:蓝牙配对/绑定生命周期被重写(丢失处理、新 intent、公开解除配对)、测距进入安全时代(802.11az 加密测距 +
RangingManager多技术统一入口)、配套设备管理器(CDM)获得设备在场观察、Health Connect 新增强度数据与 FHIR 医疗记录通道。卫星连接、多卡等坊间热点在 16 官方页的真实口径,本页也给出核实结果。
版本注记:事实源为官方Android 16 特性页(连接/隐私节)、行为变更两页与 Android 健康文档,核对时间 2026-10。除标注外均为 Android 16 / API 36。
一、能力总览与版本归属
| 能力 | 版本 | 面向 | 官方入口 |
|---|---|---|---|
| 蓝牙绑定丢失处理统一 | API 36,全部应用 | 所有蓝牙外设类 app | bc-all §连接 |
ACTION_KEY_MISSING / ACTION_ENCRYPTION_CHANGE | API 36,target36 | 键鼠/车载等配对敏感场景 | bc-36 §连接 |
CDM removeBond(int) | API 36,target36 | 穿戴/配件管理类 app | CDM 配对文档 |
| 设备在场(Device Presence) | API 36 | CDM 关联设备 | 特性页 §连接 |
| 802.11az 安全测距 | API 36 | 门锁/车钥匙/设备解锁 | SecureRangingConfig 参考 |
RangingManager 通用测距 | API 36 | 跨技术测距应用 | 特性页 §连接 |
Health Connect ACTIVITY_INTENSITY | API 36 | 健身/健康类 app | Health Connect |
| 医疗记录(FHIR)读写 | API 36 | 医疗健康 app | 医疗记录指南 |
| LE Audio 助听器通话麦源/环境音量 | API 36 | 系统能力,app 无感 | 03 页 §九 |
(表中「面向」列为工程影响判断,非官方字段;版本列全部可回溯到所列官方页面。)
二、蓝牙:配对-绑定-加密的整条生命周期被重写
Android 16 不是加一个 API,而是把「绑定丢了怎么办」标准化了。三块拼起来看:
- 全应用层(不看 target):检测到远端配对丢失时,系统断开 ACL、保留本地配对记录、弹系统对话框引导用户重配对;旧版「静默解配 + 应用自行重配」退场。背景是官方观察到大量应用处理 bond loss 不一致。详见 01 页 §十二。
- target36 层:新增
ACTION_KEY_MISSING(配对丢失主信号)与ACTION_ENCRYPTION_CHANGE(链路加密状态/算法/密钥长度变更;丢失后再次收到成功加密事件 = 绑定已恢复)。官方同时明确 OEM 差异:有的实现广播 KEY_MISSING(断 ACL 留记录),有的不广播(直接删记录,同 15 行为)——应用两种信号面都要兜底。见 02 页 §八。 - 操作面:CDM 关联内的设备可用公开
removeBond(int)发起解除配对,配ACTION_BOND_STATE_CHANGED跟踪终态,告别反射私接与 adb 手工解绑。
落地 checklist(外设类 app):
- 把「配对丢失」从错误码提升为独立状态机分支:引导确认设备在范围 → 用户确认 → 重配对/解除;不要在收到 KEY_MISSING 后自动重连(可能已不绑定)。
- 加密降级要可见:收到 ENCRYPTION_CHANGE(算法/密钥变化)时提示安全等级变化,别静默继续传数据。
- 测试矩阵补一例:A 端忘记配对 → B 端回连 → 验证对话框、intent 广播与自家状态机三方一致。
接收端参考骨架(Kotlin,仅示意流程,字段以官方 API 参考为准):
kotlin
val filter = IntentFilter().apply {
addAction(BluetoothDevice.ACTION_KEY_MISSING)
addAction(BluetoothDevice.ACTION_ENCRYPTION_CHANGE)
addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED)
}
// 收到 KEY_MISSING:置「配对丢失」态 → UI 引导;
// 其后若收到 ENCRYPTION_CHANGE 且加密成功:视为绑定恢复,回到正常态;
// BOND_STATE_CHANGED 用于解除配对(removeBond)后的终态确认。三、测距双轨:802.11az 安全测距与 RangingManager
版本注记:Android 16 / API 36。前者扩展既有 Wi-Fi RTT(RTT 本身 API 28 起),后者是全新统一入口。
3.1 Wi-Fi 测距的安全升级(802.11az)
- 在支持 802.11az(Wi-Fi 6 生态集成)的设备上,Wi-Fi RTT 可启用强安全测距:AES-256 加密的测距帧 + 防中间人(MITM)中继攻击。API 面见
SecureRangingConfig。 - 为什么重要:无符号安全性的测距可被「距离欺骗」(放大转发测距帧即可伪造更近)。门锁、车钥匙、笔记本解锁这类近场授权场景,从「测到距离」升级为「可信地测到距离」,同时继承 802.11az 更高的精度、可伸缩性与动态调度。
3.2 RangingManager:一个 API,多种物理层
- 新系统服务
RangingManager:在受支持硬件上给出本机与远端设备的距离与角度,屏蔽底层技术差异。官方点名支持:BLE 信道探测(Channel Sounding)、BLE RSSI、UWB、Wi-Fi RTT。 - 意义:过去测距应用要按 BLE/UWB/Wi-Fi 各写一套;现在一套请求模型 + 能力探测选层。跨 UWB/BLE 生态做寻物、门禁、空间音频锚点的团队是首批受益者。
接入建议:以「安全测距优先、精度分档降级」设计交互——支持 SecureRanging 的设备用于授权决策,仅 RSSI 级测距只做「找东西」不做「开门」。
四种物理层的工程直觉(能力以 RangingManager 运行时探测与设备支持为准):
| 技术 | 量级直觉 | 安全形态 | 典型场景 |
|---|---|---|---|
| BLE RSSI | 米级、抖动大 | 无测距层安全 | 近似在场判断、寻物兜底 |
| BLE 信道探测 | 亚米级趋势 | 配合上层认证 | 门禁候选、防误开门 |
| UWB | 厘米级 | 可配 UWB 安全测距 | 车钥匙、精确指向 |
| Wi-Fi RTT / 802.11az | 亚米级 | AES-256 + 防中继 | 笔记本/门锁解锁 |
四、CDM 设备在场:把「在不在范围」变成一等事件
版本注记:Android 16 / API 36。
- 新回调
onDevicePresenceEvent()(经startObservingDevicePresence(ObservingDevicePresenceRequest)注册,参考文档):BLE 在范围且已连接时系统绑定配套应用服务、离开范围/断开时解绑,应用按DevicePresenceEvent感知在场变化。 - 价值:过去各家穿戴 app 用前台服务 + 自建心跳模拟「在范围常驻」;现在由系统托管绑定时机,省电且行为一致。
- 与本页 §二 配对生命周期配合:在场事件 + KEY_MISSING/ENCRYPTION_CHANGE + BOND_STATE_CHANGED,构成完整的设备关系状态机。
- 文档主页:配套设备配对。
与旧方案的对照:自建「前台服务 + BLE 心跳」方案在 16 之后属于双输(费电且和系统在场机制打架)。迁移顺序建议:先把服务绑定时机交给 CDM(观察事件对拍一致性)→ 再删自建心跳 → 最后把在场事件接到产品逻辑(自动解锁、自动同步)。
五、Android 健康:Health Connect 的两块新基建
版本注记:Android 16 / API 36;平台入口 Android 健康文档。
5.1 ACTIVITY_INTENSITY(活动强度)
- 新数据类型,按 WHO 对中等强度/剧烈强度活动的定义建模:每条记录必填开始时间、结束时间与强度(中等/剧烈)。
- 对应用的意义:WHO 指南式的「每周 150 分钟中等强度」终于有系统级统一口径,健身类与慢病管理类 app 不再各自解释「中等强度」。
5.2 医疗记录(Medical Records / FHIR)
- Health Connect 支持医疗记录的新版 API:应用可在用户明确同意下读写 FHIR 格式的医疗记录。文档:医疗记录指南。
- 与 16 的细粒度健康权限体系(02 页 §七)同属一套治理逻辑:数据细分、显式授权、可审计。
健康权限迁移速查(target36 后适用):
| 场景 | 旧权限 | 新权限方向 |
|---|---|---|
| 使用期间读心率 | BODY_SENSORS | READ_HEART_RATE 等细分 |
| 后台读健康传感 | BODY_SENSORS_BACKGROUND | READ_HEALTH_DATA_IN_BACKGROUND |
| health 类前台服务 | BODY_SENSORS | 对应 android.permission.health 族 |
| 医疗记录读写 | 无系统通道 | FHIR API + 用户明确同意 |
缺隐私政策 activity 声明会被直接撤权——把该 activity 写进升级 checklist 的第一行。
5.3 「Android Health Solutions」口径说明
官方开发者侧的落点就是 Android 健康 / Health Connect(上述两文档即其主干),设备侧数据源含手机/Wear OS/BLE 配件。媒体语境里「健康平台」的大词,请在官方文档找到对应 API 后再写进方案;找不到对应 API 的部分按愿景处理。
六、卫星连接与多卡:官方 16 页核实结果
- 卫星连接:Android 16 的三页官方文档均无面向第三方应用的卫星消息/连接公开 API 条目。个别厂商与运营商的卫星功能(短信兜底、紧急求救)走私有或系统应用通道。坊间「16 开放卫星 API」说法,本站按传闻/待验证处理,建议盯 QPR 特性页与 API diff(36.x)再下结论。
- 多卡/eSIM:三页亦无多卡行为变更条目。双卡数据切换、eSIM 管理的既有框架行为(
SubscriptionManager等 API 族)在 16 无公开变化。 - NFC/UWB:UWB 的变化以
RangingManager收编的形式出现(§三);NFC 无 16 专项行为变更条目。
核实方法本身也值得抄:任何「X 是 Android 16 新规」的说法,先查三页(特性页 + 两页行为变更),再查 API diff 36 有没有对应 API,两者都没有就按传闻降级处理。
七、本地网络与局域网发现:LNP 是连接类 app 的头号工程
版本注记:LNP 属 25Q2/26Q2 发布通道的长线隐私项目(target36 侧),细节与命令见 02 页 §十,这里只列连接域影响。
- 受影响最重的连接类场景:mDNS/SSDP 设备发现、DLNA/投屏、局域网直连传输(P2P 快传、NAS 客户端)、智能家居本地控制、会议设备的本地发现。
- 工程姿势:把「本地网络访问」当独立权限分支设计(发现失败 → 引导授权 → 降级云端路径),别让它混在全局 INTERNET 假设里;投屏类盯官方后续投屏指南与输出切换器豁免路径。
七·五、LNP 故障症状速查
| 症状 | 大概率原因 | 处置 |
|---|---|---|
sendto failed: EPERM | 局域网目的地址被 LNP 拦截 | 走授权引导;测试期临时授 NEARBY_WIFI_DEVICES |
| mDNS/SSDP 发现不到设备 | 多播被拦 | 同上;投屏类盯官方投屏豁免指南 |
| 仅蜂窝/VPN 下正常,Wi-Fi 下失败 | 目标恰在本地网段 | 按本地网络定义表核对网段(含 CGNAT 100.64/10) |
| 发现类 API 无异常但业务不通 | NsdManager 在进程外执行 | 选择启用阶段进程外 API 未受限,属预期,提前设计别赌 |
八、落地路线图(连接类 app 版)
- 立即:蓝牙绑定生命周期适配(§二 checklist)——它不看你的 targetSdk,用户升 16 就生效。
- 短期:健康权限迁移(心率类 API 换
android.permission.health族 + 隐私政策 activity);LNP 提前用 compat 标志跑全功能矩阵。 - 中期:CDM 设备在场替代自建心跳;
RangingManager替换自研测距聚合层;ACTIVITY_INTENSITY纳入健康数据看板。 - 同期把「本地网络权限引导」做成通用组件:发现失败文案、设置页跳转、降级云端路径三段式,LNP 强制后全项目复用。
- 每个连接特性上线前,用 §六 的三页 + API diff 方法复核一次版本口径,防止把 minor/QPR 能力写成 API 36。
- 观察:卫星 API、AVIF UltraHDR 等「官方在路上」项,按季度查特性页与 API diff。
九、快答三则
- Q:不升 target36 要不要管蓝牙这摊事? 要。§二 第 1 块(系统对话框 + 保留配对记录)不看 target,用户升 16 即生效;两个新 intent 才有 target 门槛。
- Q:
RangingManager会保证我三种技术都能用吗? 不会,能力随硬件;必须先探测再选层,并把「只剩 RSSI」当常态分支设计。 - Q:Health Connect 和厂商健康 App 什么关系? Health Connect 是系统级数据中枢与授权面(细粒度权限同套);厂商健康应用是数据源/消费方之一。应用对接中枢而不是逐个对接厂商。
本页小结
本页小结:Android 16 的连接篇是「关系管理」的升级:蓝牙把配对丢失从各显神通收编为系统标准流(保留记录 + 对话框 + 新 intent + CDM
removeBond);测距从裸距离进化到「可信距离」(802.11az 加密 + MITM 防护)并被RangingManager多技术归一;CDM 用设备在场事件托管在离线状态;健康数据经 Health Connect 拿到 WHO 强度口径与 FHIR 医疗记录通道,同时细粒度权限与 LNP 把敏感访问收进授权闸门。卫星与多卡在 16 官方页没有公开条目,按传闻处理,API diff 是最终裁判。
参考资料
- Android 16 特性页(连接/隐私章节):https://developer.android.google.cn/about/versions/16/features
- 行为变更:所有应用(蓝牙绑定丢失):https://developer.android.google.cn/about/versions/16/behavior-changes-all
- 行为变更:targetSdk 36(蓝牙 intent、健康权限、LNP):https://developer.android.google.cn/about/versions/16/behavior-changes-16
- 配套设备配对(CDM):https://developer.android.google.cn/develop/connectivity/bluetooth/companion-device-pairing
- SecureRangingConfig 参考:https://developer.android.google.cn/reference/android/net/wifi/rtt/SecureRangingConfig
- Android 健康文档入口:https://developer.android.google.cn/health-and-fitness
- Health Connect:https://developer.android.google.cn/health-and-fitness/health-connect
- 医疗记录(FHIR)指南:https://developer.android.google.cn/health-and-fitness/guides/medical-records
- API 差异报告 36(核对新增连接 API):https://developer.android.google.cn/sdk/api_diff/36/changes
- API 差异报告 36.1(minor 增量):https://developer.android.google.cn/sdk/api_diff/36.1/changes
- 前台服务类型(health):https://developer.android.google.cn/develop/background-work/services/fgs/service-types#health
- DevicePresenceEvent 参考:https://developer.android.google.cn/reference/android/companion/DevicePresenceEvent
- CompanionDeviceManager 参考(removeBond):https://developer.android.google.cn/reference/android/companion/CompanionDeviceManager
- 连接能力总入口(Wi-Fi/蓝牙/配对):https://developer.android.google.cn/develop/connectivity
(本页所有链接为官方或官方文档引用之镜像,核对截止 2026-10。)