2012-02-21 137 views
5

我一直在试图找到与iOS上的蓝牙设备进行通信的示例,并且已经不多。据我了解,SPP尚未支持。在最简单的层面上,我想发送一个简单的1或0信号给我正在创建的蓝牙设备。 (这是一个可以打开和关闭的蓝牙开关)。有没有一种方法可以通过HID或HFP配置文件巧妙执行此操作?iPhone蓝牙通信示例

回答

2

据我所知,如果您的外部设备是非iOs设备,那么您应该使用外部附件框架来与您的应用程序进行通信。因此,您的外部设备应通过Apple for iPod程序(MFI)进行Apple认证。希望这可以帮助。

+0

谢谢。你知道使用这个框架的例子吗? – 2012-02-22 18:13:15

+1

检查此链接https://developer.apple.com/library/ios/search/?q=eaaccessory。您将找到有关外部附件框架的文档。 Apple还提供了一个示例演示来展示如何与外部附件建立连接。但是你如果要测试给定的functionnalities example.If您对这个框架的任何问题或信息需要一个外部设备的样品编译和运行,请联系我,因为我最近开始深化发展是基于这个框架的应用程序。 – rokridi 2012-02-23 09:19:46

+0

非常感谢! – 2012-02-23 18:47:16

-2

NO。无论设备是否已通过MFi认证,如果蓝牙配置文件为HFP或HID(普通配置文件,而不是iAP配置文件),则可以将设备连接至iphone。想想蓝牙耳机或键盘。它需要MFi标记才能使用?没有。决不。

+3

这实际上不正确的:有什么之间的iOS本身将看到并承认和你的应用程序被允许看到一个很大的区别。 – 2012-08-09 21:57:53

+0

@Zoxide:您是否有任何连接外部设备的示例代码? – 2015-09-02 11:13:59

+0

@Zeroxid:你如何连接到带有HID蓝牙配置文件的外部设备? 。 HID配置文件用于键盘输入。 MFi程序必须需要MFi认证设备才能建立连接和进一步通信。其他明智的目标设备必须是低能耗的,那么您可以使用CoreBluetooth框架进行通信。 – 2015-10-15 12:36:20

4

您的问题的简短答案是您可能碰巧拥有的you can't connect to an arbitrary Bluetooth device,您只能连接到通过Apple许可程序(即“Made for iPod/iPhone”标签)的蓝牙设备。从Apple的文档:

问: [外部附件框架允许]我的应用程序与蓝牙设备进行通信。那么为什么我的应用程序不能看到我的iPhone旁边的蓝牙配件?
A:外部附件框架旨在允许iOS应用程序仅与在Apple的MFi许可证计划下开发的硬件附件进行通信。

因此,有从内iOS的访问任意的蓝牙设备没有公共API:你必须要经过外部附件框架通过蓝牙进行通讯,而电炉的宗旨是“以MFI设备进行通信,”不“与任意外部设备通信”。足够巧妙的开发商或许可以砍东西在里面,但 -

  • 这是一个不平凡的事业
  • 你是壮观不可能让过去的App Store的审批流程

因此,有只是不其中很大比例 - 这样做的努力不可能奖励你。

如果已经存在可被强制执行某项操作的MFi设备,那么这可能是您最好的选择 - 当然,您自己通过MFi审批/许可流程的时间不多。如果你想这样做,那么祝你好运。

,我迟到了回答这个问题,因为Zeroxide的答案是不正确的(你可以使用一个随机的蓝牙键盘与iOS设备,因为苹果实现这一点,这是给你一个公共API路径也做不同的)我发现Rokridi的回答是不完整的,但是在朝着正确的方向。

编辑:一个警告已被添加到链接的苹果页面约Bluetooth Low-Energy设备。所以存在一个漏洞,但这并不是一个大问题,因为很少有蓝牙LE设备实际上已经生产。

+1

上面引用的技术Q&A QA1657文章还指出:“蓝牙低功耗配件不与外部附件框架接口,并且不要求MFI兼容相反,应用程序使用CoreBluetooth框架与iOS或蓝牙低功耗的配件进行通信。 OS X“。 – 2013-04-16 13:49:28

+0

谢谢你指出。更新了答案。 – 2013-04-17 14:58:37

1

如果你想使用传统蓝牙(不BLE),那么你必须第一对iOS设备的蓝牙设备(在设置)。如果你不能这样做,那么你不能与你的应用程序进行沟通。

+0

我已将我的蓝牙键盘与iPhone配对,它工作正常。然后,如何使用ExternalAccessoryFramework搜索和获取设备详细信息 – 2015-09-02 11:39:16