2011-08-26 74 views
4

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

+0

悬崖:你能找到什么吗? – Ram

+1

不幸的是,没有。我尝试了许多不同的方法,但没有任何可靠的工作。我仍然喜欢有关可行选项的更多信息。 – Cliff

+0

悬崖:到目前为止运气如何?我需要同样的东西。到目前为止,我发现的唯一选项是(-remoteControlReceivedWithEvent:如下面的答案)只适用于播放/停止/暂停/等。事件。我有一个蓝牙扬声器,有播放/暂停/跳过/音量和最后通话按钮。我能够拦截只播放/暂停/跳过活动:( – user1264176

回答

0

不幸的是,开发人员没有可用的蓝牙公共API,因此无法以常规方式获得该访问权限。

3

UIResponder有一个-remoteControlReceivedWithEvent:方法,您可以使用该方法从外部设备(可能包括蓝牙耳机)接收事件。从文档:

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

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

目前还不清楚耳机上的接听/挂断按钮是否与播放/暂停按钮(例如耳塞的遥控器)相同,但这可能值得一试。

+0

好主意!我会尝试一下,Thanx!:) – Cliff

0

在我的研究中,有些人通过“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

问候。