Я просто пытаюсь обнаружить, когда мое приложение запускается на iPad, если Bluetooth на устройстве включен.
В частности, я хотел бы запустить приложение на своем iPad, проверить приложение, чтобы увидеть, включен ли Bluetooth на устройстве в фоновом режиме, и если это так, приложение ничего не делает, но если bluetooth отключен, он вызывает предупреждение, которое запрашивает пользователю включить Bluetooth. Я провел исследования, изучая это, но не смог найти ясный и краткий ответ на мой вопрос. Любая помощь приветствуется.
Если вы создадите экземпляр CBCentralManager в своем приложении, ios автоматически предложит пользователю включить Bluetooth на странице настроек.
Добавьте в свой viewDidLoad или некоторую функцию верхнего уровня:
_centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
Вы можете переопределить ‘centralManagerDidUpdateState’, чтобы поймать обратный вызов:
- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
if (central.state == CBCentralManagerStatePoweredOn) {
//Do what you intend to do
} else if(central.state == CBCentralManagerStatePoweredOff) {
//Bluetooth is disabled. ios pops-up an alert automatically
}
}
Принятый ответ нужно немного обновить для iOS 10.
CBCentralManagerStatePoweredOn
и CBCentralManagerStatePoweredOff
устарели и должны быть заменены CBManagerStatePoweredOn
и CBManagerStatePoweredOff
.
Обновленный код:
- (void)centralManagerDidUpdateState:(CBCentralManager*)aManager
{
if( aManager.state == CBManagerStatePoweredOn )
{
//Do what you intend to do
}
else if( aManager.state == CBManagerStatePoweredOff )
{
//Bluetooth is disabled. ios pops-up an alert automatically
}
}