首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测iPad上的蓝牙是否启用了iOS 7

检测iPad上的蓝牙是否启用了iOS 7
EN

Stack Overflow用户
提问于 2014-07-23 16:38:30
回答 2查看 5.9K关注 0票数 1

我只是想检测一下,当我的应用程序在iPad上启动时,设备上的蓝牙是否已启用。

具体来说,我想在我的iPad上启动这个应用程序,让应用程序检查是否在后台的设备上启用蓝牙,如果是的话,应用程序什么也不做,但是如果蓝牙被禁用,它会触发一个提示用户打开蓝牙的警报。我对此进行了调查研究,但未能找到一个清晰而简洁的答案来回答我的问题。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-23 19:00:23

如果您在应用程序中实例化CBCentralManager,ios将自动提示用户从设置页面启用蓝牙。

在viewDidLoad或顶级函数中添加以下内容:

代码语言:javascript
复制
_centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];

您可以重写“centralManagerDidUpdateState”来捕获回调:

代码语言:javascript
复制
- (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
    }
}
票数 5
EN

Stack Overflow用户

发布于 2017-04-18 17:31:04

对于iOS 10,需要稍微更新接受的答案。

CBCentralManagerStatePoweredOnCBCentralManagerStatePoweredOff已被废弃,应由CBManagerStatePoweredOnCBManagerStatePoweredOff取代。

更新代码:

代码语言:javascript
复制
- (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
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24916182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档