Отключить диалоговое окно предупреждения, если Bluetooth отключен iOS
Приложение ios использует bluetooth для подключения к аксессуару. Если Bluetooth не включен, появляется всплывающее окно с просьбой активировать.
Я заметил, что всплывающее окно появляется каждый раз, когда я запускаю приложение.
Мой вопрос заключается в том, можно ли отображать всплывающее окно один раз, то есть только после первого запуска (это приложение для фиттинга). Я также хочу знать, можно ли изменить язык всплывающего окна.
Мое приложение для 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}];
Обратите внимание, что вам нужно назначить экземпляр для свойства или он не будет работать.