检测iPhone上的蓝牙应答/结束通话按钮

时间:2011-08-26 20:22:21

标签: iphone ios bluetooth mfi

是否可以在iOS上检测并响应来自HFP蓝牙设备的应答/结束呼叫按钮?有没有人见过这个?我应该在哪里寻找答案?我知道,如果您注册设备制造商(MFI)计划,可以访问较低级别的蓝牙,但我希望我不必深入了解这一点。我也知道你可以响应AVRCP命令,但我不想使用这个选项。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

UIResponder有-remoteControlReceivedWithEvent:方法,可用于接收来自外部设备的事件,可能包括蓝牙耳机。来自文档:

  

远程控制事件源自外部附件(包括耳机)的命令。应用程序通过控制呈现给用户的音频或视频媒体来响应这些命令。接收响应者对象应检查事件的子类型以确定预期的命令 - 例如,播放(UIEventSubtypeRemoteControlPlay) - 然后相应地继续。

     

要允许传递远程控制事件,必须调用UIApplication的beginReceivingRemoteControlEvents方法;要关闭远程控制事件的传递,请调用endReceivingRemoteControlEvents。

目前尚不清楚耳机上的接听/结束按钮是否等同于耳塞式遥控器上的播放/暂停按钮,但这可能值得一试。

答案 1 :(得分:0)

可悲的是,开发人员没有可用的蓝牙公共API,因此无法以传统方式获取该访问权限。

答案 2 :(得分:0)

在我的研究中,有些人通过“remoteControlReceivedWithEvent”从他们的bleu-tooth设备收到了一些事件,但不是全部!有些人没有收到!很少有人收到所有这些!

我也尝试过Core Bluetooth,但它只支持LEB(低功耗蓝牙设备)! https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothOverview/CoreBluetoothOverview.html#//apple_ref/doc/uid/TP40013257-CH2-SW1

另外,有些帖子建议可以使用Classic bleutooth而不是“Low Energy”: How to use bluetooth classic instead of le 但它也有限制(帖子是关于“MFi配件”!MFi是为“为iPhone制造”?!?!?!)

从上面的帖子: “非LE蓝牙设备需要获得MFi认证才能与外部附件框架一起使用(它需要使用特定的Apple芯片和专有通信协议)。您将无法构建应用程序来访问此设备除非它使用更开放的蓝牙LE或将其中的芯片用于标准蓝牙。可能有办法通过越狱来做到这一点,但我认识的每个人都已经转移到蓝牙LE。 !

更多帖子:Connecting to a Bluetooth device from iOS, no MFi

问候。