我在MFi计划中注册了蓝牙设备。我可以在iPhone设置中通过蓝牙配对设备,然后使用 Apple的EADemo 示例代码通过ExternalAccessory
框架访问设备。
但是,我想知道是否可以通过CoreBluetooth
在后台首先默默配对,然后使用ExternalAcessory
框架与设备通信?
我运行了一些体验,在与CoreBluetooth
配对后,ExternalAcessory
框架显示没有连接的设备。这可能是因为CoreBluetooth通过蓝牙低功耗进行操作,ExternalAccessory
也许可以通过蓝牙经典进行操作。
尽管如此,在应用程序中配对设备将是一种更好的用户体验,而不是需要离开应用程序来访问设置。如果有人遇到过这种情况,或有任何想法,请随时分享任何建议。
答案 0 :(得分:0)
如果您正在使用CoreBluetooth
,则无需依赖ExternalAcessory
框架
double delayInSeconds = 2;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:nil completion:nil];
});
只需单击一个按钮或任何您想要的代码,此代码将弹出一个窗口,显示可用的MFI程序设备列表,您需要选择该设备并将其连接。
成功连接后,您将收到通知EAAccessoryDidConnectNotification
,您需要收听此消息并且您可以使用连接配件
- (void)_accessoryDidConnect:(NSNotification *)notification {
EAAccessory *connectedAccessory = [[notification userInfo] objectForKey:EAAccessoryKey];
}
@ larromba-我希望你在寻找这个。