Проблема: Как приложение может обнаружить ранее сопряженный внешний аксессуар, который повторно подключился к устройству iOS?
Все работает нормально, если Bluetooth Classic подключений инициируется пользователем с устройства iOS Настройки iOS> Bluetooth .
Однако, когда аксессуар инициирует соединение, мое приложение НЕ получает EAAccessoryDidConnectNotification , даже если " Подключено " отображается в iOS> Настройки> Bluetooth ?
Шаги для воспроизведения:
- Установка точки останова в обработчиках для EAAccessoryDidConnectNotification в приложении EADemo
- Выключите внешний аксессуар, чтобы закрыть соединение Bluetooth, или отключите его от настроек iOS.
- Убедитесь, что устройство отображает " Не подключено " в iOS> Настройки> Bluetooth
- Включите внешний аксессуар и подключитесь к iOS
устройство от внешнего аксессуара (не от iOS).
- Убедитесь, что устройство отображает « Подключено » в iOS> Настройки> Bluetooth
- Точка останова никогда не достигается в EAAccessoryDidConnectNotification
Похоже, что приложение EADemo может получать EAAccessoryDidConnectNotification только тогда, когда соединение инициируется со стороны устройства iOS, а не из аксессуара.
Можно ли сделать эту работу?
Моя цель - восстановить соединение приложения без взаимодействия с пользователем, когда аксессуар отключается, а затем снова подключается к аксессуару.
Я следую примеру EADemo от Apple:
- Использование Bluetooth-модуля Silicon Labs BlueGiga WT41u classic в моей MFI
устройство.
- Добавлен com.mycompany.mydevice в UISupportedExternalAccessoryProtocols в Info.plist
- Я позвонил в EAAccessoryManager registerForLocalNotifications
- EAAccessoryDidConnectNotification работает нормально, если установлено соединение
используя iOS> Настройки> Bluetooth с устройства , но НЕ с
аксессуар.