Сброс состояния CentralManager - что вызывает это и как я могу это предотвратить?

У меня проблема с моим объектом CentralManger, он отлично работает, я могу подключаться и отключаться от периферийного устройства. Как только я соединяю 2 периферийных устройства, через полчаса (более или менее ..) состояние CentralManger становится «CentralManagerStateResetting», что заставляет мои периферийные устройства автоматически отключаться и не вызывать делегата: didDisconnectPeripheral.

Это из документации Apple: @constant CBCentralManagerStateResetting Соединение с системной службой было на мгновение потеряно, обновление неизбежно.

  1. Что означает это состояние?
  2. Почему CentralManger попадает в это состояние?
  3. Как я могу предотвратить его попадание в это состояние?
  4. Как я могу решить эту проблему?

Встречается во всех айфонах и проверено в версии iOS 9+


person Gili Ariel    schedule 21.01.2016    source источник


Ответы (1)


Скорее всего, это означает, что BTServer потерпел крах. Обычно он восстанавливается в течение нескольких секунд, и состояние должно снова измениться на CBCentralManagerStatePoweredOn.

Проверьте журналы вашего устройства на наличие выходных данных из BTServer.

Это может произойти, если на стек BLE большая нагрузка и системе приходится управлять большим количеством одновременных подключений к разным периферийным устройствам.

person p2pkit    schedule 29.01.2016