Повторное подключение Bluetooth от MFI EAAccessory не вызывает EAAccessoryDidConnectNotification? - PullRequest
0 голосов
/ 26 октября 2018

Проблема: Как приложение может обнаружить ранее сопряженный внешний аксессуар, который повторно подключился к устройству iOS?

Все работает нормально, если Bluetooth Classic подключений инициируется пользователем с устройства iOS Настройки iOS> Bluetooth .

Однако, когда аксессуар инициирует соединение, мое приложение НЕ получает EAAccessoryDidConnectNotification , даже если " Подключено " отображается в iOS> Настройки> Bluetooth ?

Шаги для воспроизведения:

  1. Установка точки останова в обработчиках для EAAccessoryDidConnectNotification в приложении EADemo
  2. Выключите внешний аксессуар, чтобы закрыть соединение Bluetooth, или отключите его от настроек iOS.
  3. Убедитесь, что устройство отображает " Не подключено " в iOS> Настройки> Bluetooth
  4. Включите внешний аксессуар и подключитесь к iOS устройство от внешнего аксессуара (не от iOS).
  5. Убедитесь, что устройство отображает « Подключено » в iOS> Настройки> Bluetooth
  6. Точка останова никогда не достигается в EAAccessoryDidConnectNotification

Похоже, что приложение EADemo может получать EAAccessoryDidConnectNotification только тогда, когда соединение инициируется со стороны устройства iOS, а не из аксессуара.

Можно ли сделать эту работу?

Моя цель - восстановить соединение приложения без взаимодействия с пользователем, когда аксессуар отключается, а затем снова подключается к аксессуару.

Я следую примеру EADemo от Apple:

  • Использование Bluetooth-модуля Silicon Labs BlueGiga WT41u classic в моей MFI устройство.
  • Добавлен com.mycompany.mydevice в UISupportedExternalAccessoryProtocols в Info.plist
  • Я позвонил в EAAccessoryManager registerForLocalNotifications
  • EAAccessoryDidConnectNotification работает нормально, если установлено соединение используя iOS> Настройки> Bluetooth с устройства , но НЕ с аксессуар.
...