EAAccessoryDidConnectNotification not firing until Bluetooth Accessory Picker completion block is called

5

I've recently started using the EAAccessoryManager showBluetoothAccessoryPickerWithNameFilter method in order to connect to our MFI bluetooth accessory (if it's not already connected) when our app launches. I'm running into the following scenario:

  1. Accessory is powered off
  2. User launches the app
  3. Accessory picker is displayed
  4. User powers on an accessory (which has previously been paired, and thusly reconnects)
  5. The accessory picker continues to be displayed, and the app does not receive an EAAccessoryDidConnectNotification until the user dismisses the accessory picker by pressing "Cancel".

In the situation I've explained above, even though we are connected to the accessory defined by our NSPredicate, the picker hangs around and we receive no notification that the accessory has connected until the picker's completion block is called. The user is kind of stuck in limbo.

We are running iOS 7.1.1 and have tested against 7.1 and 7.0.

Any help would be appreciated. Here's some logs showing what I am seeing:

2014-04-28 12:03:48.028 App[508:60b] BTM: attaching to BTServer
2014-04-28 12:03:48.262 App[508:60b] BTM: setting pairing enabled
2014-04-28 12:03:55.578 App[508:60b] BTM: attempting to connect to service 0x00000001 on device "Accessory-10" 00:07:80:79:92:8D
2014-04-28 12:03:55.966 App[508:60b] BTM: connection to service 0x00000001 on device "Accessory-10" 00:07:80:79:92:8D succeeded
2014-04-28 12:03:55.991 App[508:60b] BTM: attempting to connect to service 0x00000080 on device "Accessory-10" 00:07:80:79:92:8D
2014-04-28 12:03:56.024 App[508:60b] BTM: connection to service 0x00000080 on device "Accessory-10" 00:07:80:79:92:8D succeeded
2014-04-28 12:04:06.845 App[508:60b] BTM: setting pairing disabled
2014-04-28 12:04:06.847 App[508:60b] BTM: disabling device scanning
2014-04-28 12:04:06.856 App[508:60b] __46-[LoginViewController        selectBluetoothDevice]_block_invoke Error: Error Domain=EABluetoothAccessoryPickerErrorDomain Code=2 "The operation couldn’t be completed. (EABluetoothAccessoryPickerErrorDomain error 2.)"
2014-04-28 12:04:06.928 App[508:60b] EAAccessoryDidConnectNotification
2014-04-28 12:04:06.935 App[508:60b] Accessory connected!
ios
bluetooth
eaaccessory
asked on Stack Overflow Apr 28, 2014 by Ben Graver • edited Apr 29, 2014 by Larme

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0