佩戴检测概览
佩戴检测提供设备的能力、启用状态以及当前左右耳佩戴状态。设备报告该能力可配置时,还可以通过 SDK 启用或禁用检测。
功能概览
查看佩戴检测能力
读取设备报告的佩戴检测能力
查看佩戴检测状态
读取设备报告的启用状态和当前佩戴状态
设置佩戴检测
在支持配置的设备上启用或禁用佩戴检测
使用 AI 辅助实现
使用 AI 开发
让 AI 帮助实现此工作流
使用官方“管理 AIBuds 佩戴检测”技能,根据你的 App 完成实现。
请阅读并遵循 https://docs-aibuds.github.io/zh-Hans/skills/manage-aibuds-wear-detection,使用该技能在当前 iOS 项目中完成“管理 AIBuds 佩戴检测”,并验证结果。开始使用
- 连接设备——等待设备连接并就绪。
- 检查协议一致性——确认设备支持
DeviceWearDetectionAPI。 - 读取能力——使用
wearDetectionCapability判断佩戴检测是否受支持及是否可配置。 - 读取当前状态——使用
isWearDetectionEnabled和wearStatus。 - 在支持时配置——仅对能力可配置的设备调用
setWearDetection(enabled:completion:)。
核心概念
能力
WearDetectionCapability 区分以下三个级别:
| 值 | 含义 |
|---|---|
.none | 不支持佩戴检测。 |
.supportedNotConfigurable | 支持佩戴检测,但无法通过该 API 更改启用状态。 |
.supportedAndConfigurable | 支持佩戴检测,并且可以启用或禁用。 |
状态
isWearDetectionEnabled表示当前是否启用佩戴检测。WearStatus表示未知、未佩戴、仅左耳佩戴、仅右耳佩戴或双耳佩戴状态。- 能力、启用状态和佩戴状态是相互独立的值,请勿根据其中一项推断其他项。
协议参考
通过 DeviceWearDetectionAPI 访问佩戴检测:
- Swift
- Objective-C
guard let device = device as? DeviceWearDetectionAPI else {
print("Device does not support DeviceWearDetectionAPI")
return
}id<AIBudsDeviceWearDetectionAPI> device = (id<AIBudsDeviceWearDetectionAPI>)self.device;
if (![device conformsToProtocol:@protocol(AIBudsDeviceWearDetectionAPI)]) {
NSLog(@"Device does not support AIBudsDeviceWearDetectionAPI");
return;
}最佳实践
- 配置前检查能力:只有
.supportedAndConfigurable表示可以更改启用状态。 - 使用当前属性:读取 SDK 当前快照,不要调用并不存在的查询方法。
- 监听变化:通过
DeviceDelegate回调接收启用状态和佩戴状态变化。 - 明确处理未知状态:不要将
.unknown等同于.notWearing。
注意事项
- SDK 中存在某个枚举 case,并不表示每台设备都支持对应能力。
- SDK 不承诺佩戴状态变化时自动控制播放;App 应根据产品需求决定相关行为。
- SDK Demo 从
DeviceWearDetectionAPI读取能力和启用状态,并且只在能力可配置时提供配置选项。