Отключить диалоговое окно предупреждения, если Bluetooth отключен iOS

Приложение ios использует bluetooth для подключения к аксессуару. Если Bluetooth не включен, появляется всплывающее окно с просьбой активировать.

Bluetooth Popup

Я заметил, что всплывающее окно появляется каждый раз, когда я запускаю приложение.

Мой вопрос заключается в том, можно ли отображать всплывающее окно один раз, то есть только после первого запуска (это приложение для фиттинга). Я также хочу знать, можно ли изменить язык всплывающего окна.

Мое приложение для iOS7 и iOS6

Если мы не можем изменить langage, есть ли способ отключить это всплывающее окно, тогда я разработаю свой собственный вид (всплывающее окно) с локализованной системой?

Спасибо вам большое!

Ответ 1

Я получил ответ от разработчика Apple: В iOS7 параметр CBCentralManagerOptionShowPowerAlertKey позволяет отключить это предупреждение.

Если у вас есть CBCentralManager, то при его инициализации вы можете использовать этот метод -[CBCentralManager initWithDelegate:queue:options]

Пример:

В моем файле.h у меня есть CBCentralManager * manager.

В моем файле.m:

NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO};

_manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];

[_manager scanForPeripheralsWithServices:nil options:options];

С помощью этого кода предупреждение больше не появляется. Надеюсь, это поможет!

Ответ 2

Если вы подключаетесь к дополнительным устройствам, вы также можете использовать CBPeripheralManager вместо CBCentralManager. Потратьте мне немного времени, чтобы понять это, потому что я использовал sdk и не мог сказать, что это на самом деле. Но в этом случае вам нужно подавить оповещение на периферийном менеджере. Как только флаг установлен, он будет действителен для всех других экземпляров CBCentralManager или CBPeripheralManager соответственно. Я мой случай, единственная причина, по которой я CBPeripheralManager экземпляр CBPeripheralManager - это установить флаг.

@property CBPeripheralManager *pManager;

*peripheralManager = [[CBPeripheralManager alloc]initWithDelegate:nil queue:nil options:@{CBPeripheralManagerOptionShowPowerAlertKey:@NO}];

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