我只是试图检测,当我的应用程序在iPad上启动时,是否启用了设备上的蓝牙。
具体来说,我想在我的iPad上启动应用程序,让应用程序检查后台设备上是否启用蓝牙,如果是,应用程序什么都不做,但如果禁用蓝牙,它会触发警报,提示用户打开蓝牙。我已经做过研究调查,但未能找到一个清晰简洁的答案。任何帮助将不胜感激。
答案 0 :(得分:5)
如果您在应用中实例化CBCentralManager,ios会自动提示用户从“设置”页面启用蓝牙。
在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
}
}
答案 1 :(得分:1)
对于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
}
}