这让我发疯了......我以前工作得很好,不知道发生了什么变化。我正在通过蓝牙连接到专有的公司设备,它具有身份验证芯片,并且(正如我所说)之前一切都很好。
我的 iPad 和配件都显示它们已相互连接。然而,当我尝试在我的应用程序中与设备交谈时,大多数时候 EAAccessoryManager 甚至都找不到它……但偶尔我可以连接。是什么赋予了?
-(void)scanForDevice
{
NSArray *accList = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
// This is ZERO every time...even though iPad and device both indicate connection.
DLog(@"accList count: %i", accList.count);
for (EAAccessory *accessory in accList)
{
for (NSString* protocolString in accessory.protocolStrings) {
if ([protocolString isEqualToString:[redacted]]) {
[self connectToAccessory:accessory];
break;
}
}
}
}
ETA:我已经连接了一个按钮来调用 showBluetoothAccessoryPicker... 方法来在应用程序中显示一个蓝牙选择器。这导致了更多的混乱。iPad 告诉我我已经连接(在设置中)的配件显示在选择器中。当我点击它时,控制台输出如下:
2014-04-01 16:48:00.324 Subview[3438:60b] BTM: attempting to connect to service 0x00000080 on device [redacted] 00:07:80:73:06:01
2014-04-01 16:48:02.497 Subview[3438:60b] BTM: connection to service 0x00000080 on device [redacted] 00:07:80:73:06:01 succeeded
2014-04-01 16:48:11.924 Subview[3438:60b] BTM: lost device [redacted] 00:07:80:73:06:01
2014-04-01 16:48:12.500 Subview[3438:60b] BTM: setting pairing disabled
2014-04-01 16:48:12.501 Subview[3438:60b] BTM: disabling device scanning
2014-04-01 16:48:12.509 Subview[3438:60b] <0x157d10770 JobListViewController.m:(255)> BTPicker failed with error: The operation couldn’t be completed. (EABluetoothAccessoryPickerErrorDomain error 1.)
该错误代码在文档中显示为“未找到”。嗯……所以连接成功,然后立即丢失,然后找不到,即使根据设置我一直在连接?我无法解释这一切。非常感谢有此框架经验的人的任何帮助。我几乎完全相信它要么是框架的问题,要么是附件本身的问题,或者是它们的某种组合。