Вы правы, что опция инициализации CBCentralManagerOptionShowPowerAlertKey , которая должна отображать предупреждение, если структура инициируется при выключении Bluetooth, на самом деле не работает должным образом, если Bluetooth отключен из Центра управления,Поскольку в iOS 11 система на самом деле не отключит Bluetooth, если вы отключите кнопку в Центре управления, она отключит только подключенные в данный момент устройства.Тогда единственный способ отключить Bluetooth - это сделать в Системных настройках.Это задокументировано Apple, но для меня это крайне вводит в заблуждение.Поэтому я, честно говоря, не знаю, является ли поведение API, которое вы испытываете, ошибкой или ожидаемым.
Я предлагаю вам пропустить этот параметр инициализации и вместо этого полагаться на значение central.state когда вы получаете обратный вызов " centralManagerDidUpdateState: ", а затем создаете свое собственное всплывающее окно, если значение равно CBManagerStatePoweredOff , что, как ни странно, будет иметь место, независимо от того, используется ли bluetoothотключено в Системных настройках или отключено из Центра управления.
Если ваше приложение работает в фоновом режиме, вы можете вместо этого использовать локальное уведомление, чтобы привлечь внимание пользователя.
Не идеальное решение, но оно должно быть более надежным.