从iOS连接到蓝牙设备,没有MFi

我从Stackoverflow和互联网得到的盛传是,除非我使用LE设备,我为iOS应用程序制作的任何蓝牙设备必须通过MFiauthentication。

但是,在MFi常见问题页面上,我发现这一行:

…完全依靠标准技术的配件开发商(如低功耗蓝牙或标准蓝牙configuration文件)不需要joinMFi计划。

我的设备将能够使用标准的蓝牙configuration文件传输协议(FTP) 。

现在这听起来像是对我的一些相互矛盾的build议,或者我只是不正确的理解。 因此,提供了上述证据,我只是要问:我可以编写和发布一个iOS应用程序,使用标准的蓝牙configuration文件FTP连接到专有的蓝牙设备,而无需authentication我的设备为MFi? 如果是这样,我需要知道哪些细节,注意事项等?

该行指的是由ios设备(如HFP或A2DP)本机支持的标准configuration文件。 如果您构build的是HFP的耳机设备,则iPhone将能够连接到该设备,并将您的呼叫路由到耳机,而不必将耳机作为MFi的一部分。

如果你想写一个应用程序,其他事情与蓝牙,包括FTP,你将不得不使用MFi。

在苹果最新的iOS设备中实现的新的蓝牙4.0低功耗(以下简称BLE 4.0)规范确实允许创build特定于应用的configuration文件,并且无需越狱,使用批准的蓝牙2.1configuration文件连接到BLE 4.0设备,或者成为Apple的一部分'd MFI程序并使用以前所需的MFI密码芯片。

换句话说,使用适当的BLE 4.0兼容的蓝牙无线电,您可以创build连接到iOS应用程序的无线设备,而无需苹果公司预先批准该设备。 但是,您必须为该设备编写自定义应用程序,而苹果公司仍然有权拒绝该应用程序。 所以他们仍然在很大程度上控制这个。 这实质上是苹果公司对Android ADK的回应,而不是完全放弃closures他们不喜欢的应用程序和设备的能力。

您的应用程序必须为您的应用程序的蓝牙configuration文件包含特定的XML架构,并使用CoreBluetoothFramework API,因此,在您的应用程序连接到设备的应用程序审批stream程中,这一点非常明显。 如果您的应用在没有设备的情况下无法正常工作,那么如果您不属于MFI计划,则可能会被拒绝,因为苹果无法在没有设备的情况下testing应用。 通过此testing似乎成功的应用程序将该设备用作应用程序function的附件,而不是要求。 例如一个练习应用程序可能会连接到BLE 4.0心率监视器 ,但该应用程序不依赖于它。

有些应用程序似乎通过在没有设备时显示模拟或在线信息代替设备信息来解决这个问题。 因此,应用程序可以在没有设备的情况下进行testing,并且在设备存在时function性地工作。

你可以在网上find一些成功的努力:

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视网膜

可能还有其他苹果设备支持这个标准,这是苹果在每个产品的技术规格页面上公开发布的东西,所以很容易find当前的产品。