EASession, EAAccessoryDelegate и «ОШИБКА - не удалось открыть сеанс»

Я работаю с фреймворком внешних аксессуаров. У меня возникли проблемы с восстановлением EASession после того, как приложение перешло в фоновый режим, а затем вернулось на передний план. Если я закрою приложение и перезапущу его, соединение Bluetooth будет восстановлено, как и следовало ожидать. Я подозреваю, что есть какая-то часть разборки, которую я упустил или которая не раскрыта (??).

Если я закрою приложение и перезапущу его, ...

Я работаю с фреймворком внешних аксессуаров. У меня возникают проблемы с восстановлением EASession после того, как приложение переходит в фоновый режим, а затем возвращается на передний план. Если я закрою приложение и перезапущу его, соединение Bluetooth будет восстановлено, как и следовало ожидать. Я подозреваю, что есть какая-то часть разборки, которую я упустил или которая не раскрыта (??).

Если я закрою приложение и перезапущу его, ...

Я работаю с фреймворком внешних аксессуаров. У меня возникают проблемы с восстановлением EASession после того, как приложение переходит в фоновый режим, а затем возвращается на передний план. Если я закрою приложение и перезапущу его, соединение Bluetooth будет восстановлено, как и следовало ожидать. Я подозреваю, что есть какая-то часть разборки, которую я упустил или которая не раскрыта (??).

[EAAccessoryManager sharedAccessoryManager] connectedAccessories]] возвращает мой подключенный аксессуар, и я могу запросить его, чтобы получить имя, номер модели и т. Д. Однако в следующей строке _session устанавливается значение nil.

_session = [[EASession alloc] initWithAccessory:_accessory forProtocol:_protocolString];

Есть ли способ диагностики причина неудачной инициализации EASession?

Есть ли какая-нибудь мантра для очистки старого EASession?

Этот вопрос связан с этим вопросом, но я не прошу совета, по какому пути идти. Я спрашиваю, почему на этом пути есть такая большая ловушка и как ее обойти.

7
задан Community 23 May 2017 в 12:16
поделиться