我正在寻找为 iPhone 编写应用程序,它将能够控制汽车中的收音机和 CD 播放器。收音机和播放器具有可用的蓝牙连接。
我开始这个问题是为了获得这个地方所需的所有信息。我有几个问题,但如果您发现任何我没有要求的对我开始开发此应用程序不重要的内容,请告诉我。
我读过有关 AVRCP 配置文件的信息,并且汽车中的蓝牙设备支持 AVRCP 1.3,这对我来说已经足够好了,考虑到可以在该协议版本中执行的控制。
我读到很多人说“Apple 设备只能相互交互”、“Apple 设备无法通过蓝牙连接到非 Apple 设备”、“如果你想这样做,MFi 程序是必须的”、“MFi不需要”等。我的第一个问题是:
1)是否可以通过蓝牙将iPhone(4、4S)与车内的收音机和CD播放器配对,并用任何iPhone版本控制广播电台和音乐?如果是,进行这种成功的蓝牙连接有哪些限制?
关于 iPhone 可以发挥的作用的信息也很少。对于 AVRCP,有两种角色:控制器角色和目标角色。通过阅读这篇论文:https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf我没有找到第二个问题的答案:
2) iPhone 能否充当控制器并向目标设备(收音机和 CD 播放器)发出 AVRCP 1.3 中规定的所有可用命令?
我还想了解解决这个特定问题的可用框架。我知道其中有几个,但如果有人认识到适合我的问题的一个,我想知道:
3)我应该使用哪个框架来与目标设备交互?
从开发人员的角度来看,我也对用于与连接的蓝牙设备交互的可用 API 感兴趣。由于我正在制作自己的应用程序并将操作分配给按钮,因此在分配给按钮的方法内部我需要执行向目标设备发送消息的操作。所以我的下一个问题是:
4)有谁知道是否有办法将命令发送到目标设备(开始/停止/暂停/前进/后退等)作为XCode中提供的某些API的一部分,或者我参加通过蓝牙发送到目标的每条消息我需要根据协议文档制作设备(自己制作整个消息(标头、正文、命令部分等))?
AVRCP 是我完成这个应用程序的想法。如果我错了,请告诉我。
蓝牙有不同的配置文件,据我了解,当从一台设备发送消息时,配置文件本身会处理消息并解释它并将其传递到目标设备,以便目标设备可以理解它。我不明白从我从 Objective-C(或 C)代码发送消息的那一刻起,如何处理从 iPhone 发送到目标蓝牙设备的消息。这是我的主要疑问,它与问题 4 有关 -我是否需要以正确的格式制作原始消息才能将 AVRCP 命令发送到设备,或者我可以使用一些 API 将这些消息识别为 AVRCP(或任何其他类型)并将其传递到目标设备?
从开发人员的角度来看,最后一个问题(如果我认为对之前的所有问题都有任何肯定的答案)是我最关心的问题。因此,如果有人可能有解决这个特定问题的经验,我将不胜感激任何类型的答案或建议。
我真的很期待您的答复。我希望围绕这个主题展开建设性且有用的讨论,并撰写许多有用的信息。
此致。