【发布时间】:2012-02-21 22:47:01
【问题描述】:
我一直在尝试寻找在 iOS 上与蓝牙设备通信的示例,但一直未能成功。据我了解,尚不支持 SPP。在最简单的层面上,我想向我正在创建的蓝牙设备发送一个简单的 1 或 0 信号。 (这是一个蓝牙开关,可以打开和关闭某些东西)。有没有办法通过 HID 或 HFP 配置文件巧妙地做到这一点?
【问题讨论】:
我一直在尝试寻找在 iOS 上与蓝牙设备通信的示例,但一直未能成功。据我了解,尚不支持 SPP。在最简单的层面上,我想向我正在创建的蓝牙设备发送一个简单的 1 或 0 信号。 (这是一个蓝牙开关,可以打开和关闭某些东西)。有没有办法通过 HID 或 HFP 配置文件巧妙地做到这一点?
【问题讨论】:
您的问题的简短回答是 you can't connect to an arbitrary Bluetooth device 您可能碰巧拥有,您只能连接到通过 Apple 许可计划(即“为 iPod/iPhone 制造”标签)提供的蓝牙设备。来自 Apple 的文档:
问: [外部附件框架允许] 我的应用程序与蓝牙设备进行通信。那么,为什么我的应用程序看不到我 iPhone 旁边的蓝牙配件呢?
答:外部配件框架旨在允许 iOS 应用程序仅与在 Apple 下开发的硬件配件通信MFi 被许可人计划。
因此没有公共 API 用于从 iOS 中访问任意蓝牙设备:您必须通过外部附件框架才能通过蓝牙进行通信,而 EAF 的任务是“与 MFi 设备通信”而不是“与任意外部设备通信。”一个足够聪明的开发人员可能会在其中破解一些东西,但是 -
因此,其中的百分比并不高 - 这样做的努力不太可能奖励您。
如果已经存在可以强制执行您想做的事情的 MFi 设备,那可能是您最好的机会 - 当然,您不必自己完成 MFi 批准/许可流程。如果你想这样做,那就去做吧,祝你好运。
我回答这个问题迟了,因为 Zeroxide 的回答不正确(您可以在您的 iOS 设备上使用随机蓝牙键盘,因为 Apple 实现了该连接,这与为您提供公共 API 路径不同做同样的事情),我发现 Rokridi 的答案是不完整的,尽管朝着正确的方向前进。
编辑: 已在链接的 Apple 页面中添加了关于 Bluetooth Low-Energy 设备的警告。所以有一个漏洞,但它不是一个大漏洞,因为目前实际生产的蓝牙 LE 设备非常非常少。
【讨论】:
据我所知,如果您的外部设备不是 iOs 设备,那么您应该使用 External Accessory Framework 与您的应用程序进行通信。因此,您的外部设备应获得 Apple 通过 Made for Ipod 计划 (MFI) 的认证。希望这会有所帮助。
【讨论】:
如果您想使用经典蓝牙(不是 BLE),则必须先将 iOS 设备与蓝牙设备配对(在设置中)。如果您不能这样做,那么您将无法通过您的应用与它进行通信。
【讨论】:
没有。无论设备是否通过 MFi 认证,如果蓝牙配置文件是 HFP 或 HID(普通配置文件。不是 iAP 配置文件),您可以将设备连接到 iphone。想想蓝牙耳机或键盘。需要MFi标志才能使用吗?不。从不。
【讨论】: