从iOS设备连接到蓝牙设备,无需MFi认证

26
我从Stackoverflow和互联网上得到的感觉是,除非我使用LE设备,否则我为iOS应用程序制作的任何蓝牙设备都必须经过MFi认证。
然而,在MFi FAQ页面上,我发现了这一行:
“…仅依赖于标准技术(例如,低功耗蓝牙或标准蓝牙配置文件)的附件开发人员不需要加入MFi计划。”
我的设备将能够使用标准蓝牙配置文件文件传输协议(FTP)
现在这听起来对我来说有些矛盾的建议,或者也许我只是理解不正确。因此,鉴于上述证据,我只想直接问:我可以编写并发布一个连接到专有蓝牙设备的iOS应用程序,使用标准蓝牙配置文件FTP而无需将我的设备认证为MFi吗?如果可以,我需要知道哪些细节、注意事项等。

2
似乎每个人都说需要 MFi。我希望有人能帮我弄清楚 FAQ 中这一行的含义。 - Aaron
1
FTP是标准的蓝牙协议,但iOS不支持。因此,它必须通过MFi进行传输。 - RAX
2个回答

29
新的蓝牙4.0低功耗规范(以下简称BLE 4.0)已被应用于苹果最新的iOS设备中,它允许创建特定应用程序配置文件并连接到BLE 4.0设备,无需越狱,使用经过批准的蓝牙2.1配置文件或成为Apple MFI计划的一部分并使用以前所需的MFI加密芯片。
换句话说,只要使用适当的BLE 4.0兼容蓝牙收发器,就可以创建无需被Apple预先批准即可连接到iOS应用程序的无线设备。但是,您必须为该设备编写自定义应用程序,而且如果Apple想要拒绝该应用程序,则仍然保留拒绝的能力。因此,他们仍然在很大程度上控制着这一点。这本质上是苹果对Android ADK的回答,虽然它没有完全放弃关闭他们不喜欢的应用程序和设备的能力。
您的应用程序必须包含特定的 XML 模式用于应用程序蓝牙配置文件,并使用 CoreBluetoothFramework API。这样,在应用程序审核过程中,苹果很容易就能发现您的应用程序连接到了一个设备。如果没有该设备,您的应用程序无法正常运行,那么在没有加入 MFI 计划的情况下很可能会被拒绝,因为苹果无法在没有您的设备的情况下测试该应用程序。通过将设备用作应用程序功能的附件而不是必需品,一些看起来成功通过此测试的应用程序成功地使用该设备。例如,一款健身应用程序可以连接到BLE 4.0 心率监测器,但其功能并不依赖该设备。
一些应用程序似乎通过显示模拟或在线信息来替代设备信息以避免上述问题。因此,在没有该设备时,应用程序也可以进行测试,并且当设备出现时,应用程序具有功能性。
您可以在网上找到一些成功的例子:

http://blog.makezine.com/2012/03/19/bluetooth-4-0-from-arduino-to-iphone-no-jailbreaking-no-mfi/

BlueGiga一直在推广他们的专门用于此类用途的设备, 因此可能会在其他地方找到相关论坛和支持。

请记住,目前仅有少数设备支持BLE 4.0,包括:

  • iPhone 4S及更高版本的iPhone
  • 最近的MacBook Air、Mac Mini
  • iPad(第三代及以后,以及iPad mini)
  • Macbook Pro Retina

可能还有其他支持此标准的Apple设备,这是苹果在每个产品的技术规格页面上公开宣传的,因此易于查找当前产品。


更具体地说,没有任何iOS设备支持蓝牙2.1 FTP配置文件。即使您加入MFI计划,我也不认为您可以在任何iOS设备上启用该配置文件。您需要使用现有支持的蓝牙2.1配置文件之一,或者使用BLE 4.0并编写自己的配置文件。 - Adam Davis
这个答案需要编辑以包括更新的iOS设备吗?;-) - Moshe
具体来说,如果设备支持USB接口,则可以使用Bluegiga Technologies Bluetooth Low Energy Modules&USB Dongle连接非iOS设备,然后使用支持BLE 4.0的iOS设备进行连接。 - Shobhit Puri
2
BLE然而,是一种被认为是低带宽的技术,不会持续通信,与FTP配置文件相比并不是很合适。 - RAX

15

这行文字指的是ios设备本地支持的标准配置文件,例如HFP或A2DP。如果您制作一个支持HFP的耳机设备,iphone将能够连接并将您的通话路由到耳机,而无需将耳机作为MFi的一部分。

如果您想编写一个使用蓝牙进行其他操作的应用程序,包括FTP,则必须使用MFi。


1
不需要 MFi 认证的支持的配置文件有哪些?设备的实现是灵活的。 - Aaron
4
谢谢您的帮助。我已经找到了支持的配置文件:http://support.apple.com/kb/HT3647 - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接