iOS 耳机 BLE 命令能实现接听/挂断系统电话吗?

2 小时 36 分钟前
 kisscat2013
现在是有这么一个场景,我们自己的蓝牙耳机通过双击/三击是可以接听和挂断系统电话的,然后我们 leader 希望能在 App 中通过指令来实现接听/挂断。
耳机使用的是纯自定义 BLE 协议 ,没有实现标准 HFP 协议连接的蓝牙耳机,非来电情况下,BLE 指令执行的都没问题,来电时音频路由被系统自动切换了,不是 A2DP ,这就导致我们的 BLE 指令执行了但是没效果,无法实现接听和拒接。

耳机厂商回复的是,耳机通过 sco 传输音频,来电场景和正常场景有冲突,所以不做通话按键指令。安卓表示非 sco 模式下可以挂断接听,现在问题压力给到我们 iOS 了。
怎么办呀?
140 次点击
所在节点    iDev
3 条回复
v1
42 分钟前
没有办法,ios 根本没有办法,只能强制走 HFP 协议才行

你就是使用 CallKit 来接管系统通话界面,然后通过 BLE 指令触发 CallKit 的接听/挂断动作,也只能控制 App 发起的 VoIP 通话,无法控制系统自带的电话来电。
v1
41 分钟前
就直白告诉 leader ,iOS 系统出于安全和隐私考虑,禁止 App 通过自定义 BLE 指令接听/挂断系统电话。
这是系统架构层面的限制,不是实现问题。
如果一定要实现,需要耳机侧支持标准 HFP 协议。
kisscat2013
26 分钟前
@v1 是的,现在问题抛给耳机厂商了,看他们那边怎么回吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1211192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX