-->

你能与CoreBluetooth配对后通过ExternalAccessory框架访问蓝牙设备?(Ca

2019-09-25 17:49发布

我报名参加了MFI程序的蓝牙设备。 我能够通过蓝牙配对的设备在iPhone设置,然后使用苹果的EADemo示例代码通过访问设备ExternalAccessory框架。

不过,我想知道是否有可能在通过后台默默第一配对CoreBluetooth ,然后用ExternalAcessory框架与设备进行通信?

我已经运行了一些实验与与配对后CoreBluetoothExternalAcessory框架没有显示出连接的设备。 这可能是因为CoreBluetooth opperates通过蓝牙低能量,并ExternalAccessory也许opperates通过蓝牙经典。

尽管这样,这将是一个更好的用户体验,从一个应用程序内配对的设备,而不需要离开应用程序来访问设置。 如果有人已经在这种情况下,或有任何想法,请随时分享任何建议。

Answer 1:

无需依靠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]; }); 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]; } - (void)_accessoryDidConnect:(NSNotification *)notification { EAAccessory *connectedAccessory = [[notification userInfo] objectForKey:EAAccessoryKey]; }

@ larromba-我希望你在找这个。



文章来源: Can you access a bluetooth device via the ExternalAccessory framework after pairing with CoreBluetooth?