Устройство iOS, похоже, остается подключенным к устройству Bluetooth-LE даже после закрытия приложения, поэтому другое устройство не может подключиться

#ios #bluetooth-lowenergy #core-bluetooth #ios-bluetooth

Вопрос:

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

Недавно (кажется) мы видели, как это «удаление», по-видимому, не освобождает устройство BLE-оно не отображается на других устройствах iOS, пока Bluetooth не отключен на исходном устройстве. К сожалению, мы еще не нашли точного рецепта, чтобы повторить это.

Обновление — Мы также обнаружили, что, когда мы входим в это состояние (приложение закрыто, но устройства BLE недоступны на других устройствах iOS), страница «статус» Bluetooth в настройках показывает, что эти устройства ПОДКЛЮЧЕНЫ на первом устройстве. Мы обнаружили, что это состояние исчезнет, если приложение будет удалено с устройства (или Bluetooth отключен).

Недавно мы добавили поддержку дополнительного аксессуара Bluetooth (принтера этикеток) и в то же время изменили наши фоновые режимы. Текущие настройки из info.plist: (Строка внешнего доступа является новой для нас.)

     <array>
        <string>audio</string>
        <string>external-accessory</string>
        <string>bluetooth-central</string>
    </array>
 

Как это может происходить? Были ли какие-то недавние изменения в iOS, которые могли бы выглядеть так? Или это было добавление «внешнего аксессуара» в фоновые режимы?

Комментарии:

1. Похоже, ваше приложение больше не убивается, когда вы проводите пальцем. Скорее всего, из-за вашего изменения в фоновом режиме. Вам нужно будет изменить логику, когда вы хотите отключиться…