iPad显示连接的蓝牙配件,但EAAccessoryManager找不到它?

Rei*_*eid 7 bluetooth ipad ios eaaccessory

这让我疯了......我以前工作得很好,不知道发生了什么变化.我通过蓝牙连接到专有的公司设备,它有auth芯片和(正如我所说)之前一切都很好.

我的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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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.) 
Run Code Online (Sandbox Code Playgroud)

该错误代码在文​​档中显示为"未找到".嗯...所以连接成功,然后它立即丢失,然后它找不到,即使根据设置我连接了整个时间?我无法解释任何这一点.非常感谢在这个框架中有经验的人的任何帮助.我几乎完全相信这是框架的问题,配件本身或其某些组合.

小智 0

您是否尝试过使用 CoreBluetooth 框架?虽然这仅适用于 BLE 设备。