iPhone蓝牙通信示例

iPhone蓝牙通信示例,iphone,ios,ios5,bluetooth,Iphone,Ios,Ios5,Bluetooth,我一直在尝试寻找在iOS上与蓝牙设备通信的示例,但一直没有找到。据我所知,SPP还不受支持。在最简单的层面上,我想向我正在创建的蓝牙设备发送一个简单的1或0信号。(这是一个蓝牙开关,可以打开和关闭某些东西)。有没有办法通过HID或HFP配置文件巧妙地做到这一点?据我所知,如果您的外部设备是非iOs设备,那么您应该使用外部附件框架与应用程序进行通信。因此,您的外部设备应由苹果公司通过专为Ipod制作的程序(MFI)进行认证。希望这有帮助。否。无论设备是否通过MFi认证,如果蓝牙模式为HFP或HID

我一直在尝试寻找在iOS上与蓝牙设备通信的示例,但一直没有找到。据我所知,SPP还不受支持。在最简单的层面上,我想向我正在创建的蓝牙设备发送一个简单的1或0信号。(这是一个蓝牙开关,可以打开和关闭某些东西)。有没有办法通过HID或HFP配置文件巧妙地做到这一点?

据我所知,如果您的外部设备是非iOs设备,那么您应该使用外部附件框架与应用程序进行通信。因此,您的外部设备应由苹果公司通过专为Ipod制作的程序(MFI)进行认证。希望这有帮助。

否。无论设备是否通过MFi认证,如果蓝牙模式为HFP或HID(普通模式,而非iAP模式),您都可以将设备连接到iphone。考虑一下蓝牙耳机或键盘。是否需要在其上进行MFi标记才能使用?不会。永远不会。

您的问题的简短答案是,您可能碰巧有,您只能连接到通过苹果授权计划(即“专为iPod/iPhone制作”标签)提供的蓝牙设备。从苹果的文档中:

Q:[外部附件框架允许]我的应用程序与蓝牙设备通信。那么为什么我的应用程序看不到iPhone旁边的蓝牙附件呢?
A:外部附件框架旨在允许iOS应用程序仅与根据苹果MFi许可证计划开发的硬件附件通信。 因此,在iOS中没有用于访问任意蓝牙设备的公共API:您必须通过外部附件框架通过蓝牙进行通信,EAF的任务是“与MFi设备通信”,而不是“与任意外部设备通信”一个足够聪明的开发人员可能会在那里破解一些东西,但是-

  • 这是一项不平凡的事业
  • 你不太可能通过AppStore的审批流程
所以这里面没有太多的百分比——这样做的努力不太可能回报你

如果已经存在可以强制执行您想要的操作的MFi设备,那么这可能是您最好的机会——当然,除了亲自经历MFi批准/许可流程之外。如果你想这样做,那就去做吧,祝你好运

我之所以迟些回答这个问题,是因为Zeroxide的答案不正确(你可以在你的iOS设备上使用随机蓝牙键盘,因为苹果实现了这种连接,这不同于给你一个公共API路径来实现同样的连接),我发现Rokridi的答案是不完整的,尽管方向是正确的


编辑:此后,链接的Apple页面中添加了关于设备的警告。所以有一个漏洞,但它不是一个大的漏洞,因为到目前为止,实际生产的蓝牙LE设备非常少

如果要使用经典蓝牙(非BLE),则必须首先将iOS设备与蓝牙设备配对(在设置中)。如果你不能做到这一点,那么你就不能用你的应用程序与它交流。

谢谢。您知道使用此框架的任何示例吗?请查看此链接。您将找到有关外部附件框架的文档。苹果还提供了一个示例演示,演示如何与外部配件建立连接。该示例编译并运行,但如果您想测试给定示例的功能性,则需要一个外部设备。如果您对此框架有任何问题或信息,请与我联系,因为我最近开始开发基于此框架的应用程序。这实际上是不正确的:两者之间存在很大差异iOS本身将看到和确认的内容以及您的应用程序允许看到的内容。@Zeroxid:您有任何与外部设备连接的示例代码吗?@Zeroxid:如何使用HID蓝牙配置文件连接到外部设备。HID配置文件用于键盘输入。MFi程序必须需要经过MFi认证的设备才能建立连接和进一步通信。其他明智的目标设备必须是低能耗的,那么您可以使用CoreBlutooth框架进行通信。上面引用的技术问答QA1657文章还指出:“蓝牙低能附件不与外部附件框架连接,不需要符合MFi标准。相反,应用程序使用CoreBluetooth框架与来自iOS或OS X的蓝牙低能耗附件进行通信。“我已将蓝牙键盘与iPhone配对,工作正常。那么,如何使用ExternalAccessoryFramework搜索和获取设备详细信息