使用蓝牙连接 iPod 的 iOS 外部配件框架

Posted

技术标签:

【中文标题】使用蓝牙连接 iPod 的 iOS 外部配件框架【英文标题】:iOS External accessories framework to connect iPod using bluetooth 【发布时间】:2017-11-01 12:46:20 【问题描述】:

我正在使用苹果的 EADemo

https://developer.apple.com/library/content/samplecode/EADemo/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010079-Intro-DontLinkElementID_2

这基本上是外部附件框架演示代码

我的 info.plist 有

<key>UIBackgroundModes</key>
    <array>
        <string>audio</string>
        <string>bluetooth-central</string>
        <string>bluetooth-peripheral</string>
        <string>external-accessory</string>
        <string>fetch</string>
        <string>location</string>
        <string>newsstand-content</string>
        <string>remote-notification</string>
    </array>
    <key>UISupportedExternalAccessoryProtocols</key>
    <array>
        <string>com.apple.p1</string>
        <string>com.apple.p2</string>
    </array>

当我运行这段代码时

_eaSessionController = [EADSessionController sharedController];
_accessoryList = [[NSMutableArray alloc] initWithArray:[[EAAccessoryManager sharedAccessoryManager] connectedAccessories]];

    if ([_accessoryList count] == 0) 
        [_noExternalAccessoriesPosterView setHidden:NO];
     else 
        [_noExternalAccessoriesPosterView setHidden:YES];
    

计数始终为 0。我已将 Mac Mini 和 iPod 与我正在使用的设备配对,我相信这两个显然是 MFi 投诉。

我错过了什么?有人可以帮忙吗?

【问题讨论】:

如果您提供设备的详细信息可能会有所帮助。另外,它确实是经典蓝牙设备,而不是 BLE 设备? 它不是 BLE 设备。它是 iPod。虽然我可以将它配置为BLE外设,但我的目标是连接MFi经典蓝牙配件,如扬声器或耳机等。所以我想探索经典的蓝牙操作。 【参考方案1】:

好的,经过大量研究,我发现了这一点。首先,Apple 不会将通过电缆或蓝牙连接的 iPod 作为附件。

接下来如果有任何配件通过它连接,它会显示,但如果它不在苹果的MFi(Made for ios)许可程序下并且它是从iOS 10诱导的,则无法与它通信。现在你怎么知道协议字符串如果该设备已经在 MFi 下。这里需要联系供应商或制造商获取协议字符串,因为它是敏感数据。

【讨论】:

以上是关于使用蓝牙连接 iPod 的 iOS 外部配件框架的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 如何通过蓝牙发现外部配件?

使用 EAAccessory 框架的多蓝牙设备连接

用于检测其他 iPhone 或 iMac 的 iOS 外部附件框架

iOS 设备与外部配件(Lightning)通讯

iPhone7蓝牙搜不到设备怎么办?iPhone7蓝牙连不上怎么办

IOS 应用程序:一个应用程序中是不是可以有 2 个蓝牙连接?