获取经典蓝牙连接设备列表(无BLE)[EAAccessoryManager]

aug*_*tin 5 external-accessory ios ios-bluetooth

我需要做一个能够判断我当前是否连接到经典蓝牙设备的应用程序(实际上,它将是蓝牙车载设备).

我的第一步是告诉当前连接的经典蓝牙设备是什么.我不能使用CoreBluetooth因为它只适用于LE.我尝试使用外部附件框架.

这是代码(一个按钮启动方法):

- (IBAction)startMethodGetConnected:(id)sender {
     NSLog(@"button taped");
     // Get the number of accessories connected
     NSUInteger NumberOfAccessoriesConnected = [[EAAccessoryManager sharedAccessoryManager].connectedAccessories count];
     //Display the number 
     NSLog(@"number of accessories connected : %d", NumberOfAccessoriesConnected);
 }
Run Code Online (Sandbox Code Playgroud)

当iPhone连接到蓝牙键盘和蓝牙耳机时我试过了.在这两种情况下,控制台都会显示该数字为0.

如何显示正确的数字?

小智 1

来自苹果文档:

“支持外部附件的应用程序必须确保正确配置其 Info.plist 文件。具体来说,您必须包含UISupportedExternalAccessoryProtocols键来声明您的应用程序支持的特定硬件协议。有关此框架的更多信息,请参阅外部附件编程主题。这里

您需要使用 MFi 设备的协议将此密钥添加到您的 Info.plist 文件中。

<key>UISupportedExternalAccessoryProtocols</key>
<array>
    <string>your_protocol_name</string>
</array>
Run Code Online (Sandbox Code Playgroud)

问候