我正在使用EAAccessoryManager将我的应用程序连接到MFI附件.在初始连接期间,在蓝牙设置屏幕中,它显示为设备已连接.
当我尝试使用连接设备列表时
[accessoryManager connectedAccessories],它返回一个空数组.但是当我使用showBluetoothAccessoryPickerWithNameFilter时,它会向我显示列表中的附件.
问题是我不希望用户选择配件.我想让这个过程成为一个自动化过程.我也在info.plist中包含了附件协议字符串.请指导我这个问题.我在这做什么错?
解决方法
你能试试这个功能吗?
- - (void)_getAttachedDevices;
- {
- EAAccessoryManager* accessoryManager = [EAAccessoryManager sharedAccessoryManager];
- if (accessoryManager)
- {
- NSArray* connectedAccessories = [accessoryManager connectedAccessories];
- NSLog(@"ConnectedAccessories = %@",connectedAccessories);
- }
- else
- {
- NSLog(@"No accessoryManager");
- }
- }
你得到了哪些结果?
显然记得EAAccessory仅适用于Made-For-iPod / iPhone / iPad / AirPlay许可配件;因此,如果您没有许可配件,您将始终看到一个空数组.您是否拥有正规的MFI附件?
瘾我建议如果你还没读过Apple Documentation.
编辑1:
如果您仍然卡住,请尝试实施connect / disconnect通知:
- [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(accessoryDidConnect:)
- name:EAAccessoryDidConnectNotification
- object:nil];
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(accessoryDidDisconnect:)
- name:EAAccessoryDidDisconnectNotification
- object:nil];
您是否看到了设备的连接?如果是,请尝试获取已连接设备的列表
accessoryDidConnect