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