在 iOS7+ 上以编程方式打开蓝牙的任何方式

Posted

技术标签:

【中文标题】在 iOS7+ 上以编程方式打开蓝牙的任何方式【英文标题】:Any way to turn on bluetooth programmatically on iOS7+ 【发布时间】:2014-05-23 16:01:48 【问题描述】:

我听说 ios7 使用 CBCentralManager 引入了此功能,但找不到具体方法。有可能吗? widthout 使用 GKPeerPickerController 还有另一种方式吗?

【问题讨论】:

【参考方案1】:

您还可以在将CBCentralManager 实例化为true 时设置CBCentralManagerOptionShowPowerAlertKey 键。然后 iOS 会显示“打开蓝牙以允许“您的应用”连接到附件”的警报。此警报会将您直接带到蓝牙设置页面。

快速输入示例代码:

centralManager = CBCentralManager(delegate: self, queue: nil, options: [CBCentralManagerOptionShowPowerAlertKey: true])

Objective-C 中的示例代码:

centralManager = [[CBCentralManager alloc]
                                      initWithDelegate:self 
                                      queue:dispatch_get_main_queue() 
                                      options:@CBCentralManagerOptionShowPowerAlertKey: @(YES)];

编码愉快.. :)

【讨论】:

【参考方案2】:

不,如果用户关闭了蓝牙,您所能做的就是显示一条警报或消息,要求他们打开它。

- (void)centralManagerDidUpdateState:(CBCentralManager *)central 

    if (central.state == CBCentralManagerStatePoweredOff) 
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Error" message: @"Please turn on Bluetooth in Settings" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
       [alert show]; 
    
 

【讨论】:

只需检查 CBCentralManager state developer.apple.com/Library/ios/documentation/CoreBluetooth/… 的“关机”状态并显示警报 我已经完成了,但我不明白你能提供我的示例代码 谢谢 Paulw11。为你+1。答案是正确的。 是否有任何代码可以从警报按钮打开 iphone 设置 自从非官方的 URL 方案在 iOS 5 中被删除后没有【参考方案3】:

使用蓝牙管理器框架,

导入蓝牙管理器框架,创建蓝牙管理器框架的对象,作为btManager,

在蓝牙开启按钮目标中编写以下代码

[btManager setPowered:YES];
[btManager setEnabled:YES];

一切顺利……

【讨论】:

这是一个私有 API,会让您的应用在 App Store 上被拒绝。 我们如何在 swift 中使用它?

以上是关于在 iOS7+ 上以编程方式打开蓝牙的任何方式的主要内容,如果未能解决你的问题,请参考以下文章

在android上以编程方式打开/关闭大写锁定和shift键

在 iOS 7 上以编程方式安装 .mobileconfig 文件

在 OS X 上以编程方式打开通知中心

在 Linux 命令行上以编程方式删除所有蓝牙设备

在运行 Windows IoT 的 RPi3 上以编程方式接受入站蓝牙配对请求

如何以编程方式在 iOS 11 中打开蓝牙设置