是否可以检测并响应iOS上HFP蓝牙设备的接听/挂断电话按钮?有没有人看过这个?我应该在哪里寻找答案?我知道如果您注册设备制造商(MFI)计划,可以访问较低级别的蓝牙,但我希望我不必深入了解这一点。我也知道你可以响应AVRCP命令,但我不想使用这个选项。谁能帮忙?在iPhone上检测蓝牙接听/挂断电话按钮
回答
不幸的是,开发人员没有可用的蓝牙公共API,因此无法以常规方式获得该访问权限。
UIResponder有一个-remoteControlReceivedWithEvent:
方法,您可以使用该方法从外部设备(可能包括蓝牙耳机)接收事件。从文档:
远程控制事件起源于外部附件(包括耳机)的命令。应用程序通过控制呈现给用户的音频或视频媒体来响应这些命令。接收响应者对象应检查事件的子类型以确定预期的命令(例如,播放(UIEventSubtypeRemoteControlPlay)),然后相应地继续。
要允许传递远程控制事件,必须调用UIApplication的beginReceivingRemoteControlEvents方法;要关闭远程控制事件的传递,请调用endReceivingRemoteControlEvents。
目前还不清楚耳机上的接听/挂断按钮是否与播放/暂停按钮(例如耳塞的遥控器)相同,但这可能值得一试。
好主意!我会尝试一下,Thanx!:) – Cliff
在我的研究中,有些人通过“remoteControlReceivedWithEvent”从他们的牙齿装置接收了一些事件,但不是所有人都接受了!有些没有收到!很少有人收到他们所有的人!
我也试过核心蓝牙,但它只支持LEB(低能量蓝牙设备)! https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothOverview/CoreBluetoothOverview.html#//apple_ref/doc/uid/TP40013257-CH2-SW1
此外,一些帖子表明,它可以使用经典bleutooth而不是“低能量”! How to use bluetooth classic instead of le 但它也有局限性,以及(后走约“MFI配件” MFI是它的“ “)
来自上面的帖子: ”非LE蓝牙设备需要MFi认证才能与外部附件框架一起使用(它需要使用特定的Apple芯片和专有通信协议),除非使用更开放的蓝牙LE,或者将此芯片用于标准蓝牙,否则您将无法构建应用程序以访问此设备。可以通过越狱来做到这一点,但几乎每个我认识的人都转移到了蓝牙LE。“ !
多岗:Connecting to a Bluetooth device from iOS, no MFi
问候。
- 1. 检测蓝牙“通话”按钮按
- 2. 检测Android蓝牙应答/挂断按钮事件
- 3. 检测蓝牙耳机按钮按
- 4. 检测蓝牙耳机通话按钮按下android
- 5. iPhone检测蓝牙设备
- 6. Iphone检测蓝牙设备
- 7. 如何接听电话并挂断电话?
- 8. 如何检测蓝牙耳机上的按钮按
- 9. UIWebView电话链接iphone上的检测
- 10. 侦听蓝牙外设按钮事件
- 11. 检测iPhone上是否连接了蓝牙设备
- 12. 监听蓝牙设备连接窗口电话
- 13. 当用蓝牙耳机接听电话时,iBeacon地区退出
- 14. Android检测到蓝牙立即断开
- 15. iPhone - 可能从非mfi蓝牙设备检测到蓝牙ID?
- 16. iphone蓝牙连接
- 17. iPhone - 检测附近的蓝牙设备
- 18. Android 2.1检测蓝牙音频连接/断开连接
- 19. 拨打多个号码,在未接听的电话上挂断并连接已接电话(twilio)
- 20. 检测IPads/IPhone电源按钮和IPad/IPhone按钮
- 21. 检测Tab键按下蓝牙键盘
- 22. iOS Swift蓝牙键盘按键检测
- 23. Android - 如何检测拨出电话已接听或接听?
- 24. Meteor.method挂断电话
- 25. 检索iPhone上的蓝牙地址
- 26. 安卓蓝牙 - 检测设备断开连接
- 27. 检测到蓝牙设备已断开连接
- 28. 如何检测蓝牙HID设备是否断开连接?
- 29. Android蓝牙:连接()/断开()
- 30. 你可以在iPhone上挂断电话吗?
悬崖:你能找到什么吗? – Ram
不幸的是,没有。我尝试了许多不同的方法,但没有任何可靠的工作。我仍然喜欢有关可行选项的更多信息。 – Cliff
悬崖:到目前为止运气如何?我需要同样的东西。到目前为止,我发现的唯一选项是(-remoteControlReceivedWithEvent:如下面的答案)只适用于播放/停止/暂停/等。事件。我有一个蓝牙扬声器,有播放/暂停/跳过/音量和最后通话按钮。我能够拦截只播放/暂停/跳过活动:( – user1264176