4

是否可以检测并响应来自 iOS 上的 HFP 蓝牙设备的接听/挂断按钮按下?有人见过这个吗?我应该在哪里寻找答案?我知道如果您注册设备制造商 (MFI) 计划,可以访问较低级别的蓝牙,但我希望我不必深入研究。我也知道您可以响应 AVRCP 命令,但我不想使用此选项。任何人都可以帮忙吗?

4

3 回答 3

3

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

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

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

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

于 2011-08-26T22:35:32.387 回答
0

根据我的研究,有些人通过“remoteControlReceivedWithEvent”从他们的蓝牙设备收到了一些事件,但不是全部!有些人没有收到!很少有人收到所有这些!

我也试过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”: 如何使用 bluetooth classic 而不是 le 但它也有限制(帖子是关于“MFi 配件”!MFi 是用于“制造iphone”?!?!?!)

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

更多帖子:从 iOS 连接到蓝牙设备,没有 MFi

问候。

于 2014-11-07T20:56:04.643 回答
0

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

于 2011-08-26T20:42:07.510 回答