You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android CompanionDeviceService 触发onDeviceAppeared后立即解绑异常

问题原因
  1. 未完成正式的伴侣设备关联流程
    仅调用startObservingDevicePresence无法让系统将对应BLE设备识别为你应用的合法关联设备,系统仅会触发一次存在检测回调,随后就会解绑销毁服务。
  2. 设备未完成配对(Bond)
    你提到的未调用createBond确实和异常直接相关,Android 12要求伴侣设备必须完成配对,才会触发系统的服务保活逻辑,未配对设备仅会触发单次回调。
  3. 权限未完成动态授权
    清单中声明的REQUEST_COMPANION_RUN_IN_BACKGROUND、REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE等权限,不是仅在清单声明即可生效,需要用户在设备关联流程中手动同意授权后才会生效。
修复步骤
  • 先走完整的伴侣设备关联流程:
    构建AssociationRequest指定BLE设备类型,调用CompanionDeviceManager.associate()拉起系统的设备选择弹窗,用户选择目标设备后得到AssociationInfo,完成应用和设备的官方关联。
  • 完成设备配对:
    关联流程中系统会自动触发配对请求,也可以在关联成功后主动调用createBond完成设备配对,确保设备处于已绑定状态。
  • 完成所需权限的动态申请:
    先动态申请蓝牙基础权限:BLUETOOTH_SCAN、BLUETOOTH_CONNECT、ACCESS_FINE_LOCATION,关联设备时引导用户同意伴侣设备后台运行、设备存在检测的相关权限。
  • 关联完成后再调用startObservingDevicePresence:
    等上述流程都走完之后再调用设备存在检测方法,此时系统会按照官方文档说明,在设备附近时保持CompanionDeviceService的绑定状态。

内容的提问来源于stack exchange,提问作者Maragues

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:45:02