问题不在于BLE设备,它只是普通的蓝牙设备。
目前我的代码是这样的, 我叫这个函数:
[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:nil completion:^(NSError *error)
{
}];
}
然后打开弹出的可用蓝牙设备列表,然后点击我想要的设备并获取一个对象并继续。
有什么方法可以跳过这个选择器步骤并直接获取我的设备的对象?
答案 0 :(得分:1)
不,如果没有配对,就无法连接。第一次,您必须通过“设置”应用或选择器与设备建立用户对。但是,在第一次配对后,如果配件已连接到iOS设备,您可以跳过选择器并为配件获得EAAccesory *
。以下是查询连接附件列表的方法:
NSArray<EAAccessory *> *connectedAccessories = [EAAccessoryManager sharedAccessoryManager].connectedAccessories;
for (EAAccessory *accessory in connectedAccessories) {
// Implement needed filter to recognize your device.
// You can use for instance accessory.protocolStrings
// The MAC address is available with [accessory valueForKey:@"macAddress"]
}
使用EAAccessory框架,您无法以编程方式启动与设备的连接。对于后续连接,您可以让设备重新连接到最后连接的设备(如果您控制固件)。如果您的应用位于前台,则会触发EAAccessoryDidConnectNotification
,否则会将通知排队并更新已连接的配件列表。