蓝牙经典与iOS ExternalAccessoryFramework
我使用iOS Supported Bluetooth Profiles蓝牙经典与iOS ExternalAccessoryFramework
据我所知寻找一个iOS应用程序将与蓝牙经典设备进行通信的发展,这应该使用外部附件的框架可能,不应要求参与MFi计划。从MFi FAQ:
什么类型的配件和技术都不是MFI 计划的一部分?
不使用上述列出的任何MFi许可技术的附件不属于MFi计划的一部分。例如:仅使用标准
到目前为止,一切都很好。所述External Accessory Framework doc介绍说(强调):
外部附件框架提供用于通过 30针的基座接口与连接到基于IOS的设备外部硬件进行通信 或无线使用蓝牙支持。 支持外部附件的应用程序必须确保正确配置其 Info.plist文件。具体而言,您必须包含 UISupportedExternalAccessoryProtocols项以声明您的应用程序支持的特定 硬件协议。
上述“特定硬件协议”的值记录在哪里?我假设这是指蓝牙配置文件?
FWIW,我下载并试图运行Apple's EADemo app。它包含UISupportedExternalAccessoryProtocols项的值com.apple.p1和com.apple.p2。当我在第四代iPod Touch/iOS8.1.3上运行EADemo应用程序时,它找不到任何BT设备。它应该找到它连接的Jawbone扬声器。
为了简化,我也创建了一个非常小的样本应用程序侦听EAAccessoryDidConnectNotification通知:
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accessoryDidConnect:) name:EAAccessoryDidConnectNotification object:nil];
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
}
- (void) accessoryDidConnect:(NSNotification *)notification {
EAAccessory *connectedAccessory = [[notification userInfo] objectForKey:EAAccessoryKey];
NSLog(@"didConnect: %@", connectedAccessory.name);
}
当我运行在iPod touch上的代码,没有通知被接收。应用程序正在运行。我关闭了Jawbone扬声器,然后开始连接。 (我可以通过查看设置 - >蓝牙确认它确实连接)。
我已将UISupportedExternalAccessoryProtocols键添加到应用程序plist,并将值数组留空并添加com.apple.p1和com.apple.p2(如在EADemo应用程序中)。
关于我失踪的任何想法?如何使iOS应用程序与蓝牙经典设备进行通信?
TL; DR:EA框架仅适用于MFi设备。
从苹果技术开发人员支持:
您好汤姆,
在回答您的问题关于使用外部 附件框架
Q1的。如果我试图以编程 任何使用EA框架这些配置文件连接到BT设备,必须在设备是MFI 兼容?回应 - 是的。附件必须实现一个特殊 协议来标识数据在选定 传输要被发送/接收为EA支持的数据。 Q2302。举例来说,我可以使用EA框架编写代码,将 连接到与MFi不兼容的蓝牙扬声器吗?响应 - 大多数 经典蓝牙音箱使用AVRCP/A2DP通过蓝牙通过iPhone传输音频数据 。这些数据完全与 分开标记为外部附件支持的数据。 EA框架 不能用于访问通过AVRCP/A2DP发送的数据。然而,某些 演讲者确实实施了单独的EA数据交换,它将与EA Framework应用程序一起工作 。然而,直接的答案 - 不。一个 EA框架的应用程序将opnly功能与MFI兼容配件 - 更是一个子集 - 一个desigend与EA使用。
评论 - Jawbone的扬声器不会在EADemo 应用程序出现在UITableView的。回应 - 这是正确的。 Jawbone扬声器不是 EA附件。但是耐克燃料带是EA配件。一个 重要的考虑因素 - 使用EA框架,你必须用 配件供应商合作学习由 附件支持的数据协议 - 什么数据看起来接收和发送数据时等。
您好,非常多的搜索后,我是这个链接。你可以请让我知道,如果我必须连接到使用经典蓝牙(Bluetooth®版本2.1 SPP亲HID Pro苹果iAP2/MFi)的MFi许可配件,我必须编写iPhone应用程序来与它沟通......自使用外部附件,我们必须注册MFi开发者许可证......或者我们可以直接使用他们的SDK,因为它是MFi许可证附件...请让我知道 – user2813740 2016-08-18 06:36:31