【问题标题】:iOS 5: programmatically turn bluetooth on and offiOS 5:以编程方式打开和关闭蓝牙
【发布时间】:2012-03-01 08:08:03
【问题描述】:

我发现以编程方式打开和关闭蓝牙是 iOS 早期版本中的“私有 api”功能,这会导致应用程序被 Apple iTunes 商店拒绝。

但在 iOS 5 中,我知道以前的私有内容不再是私有的,例如以编程方式更改屏幕亮度。这样做不会再让您的应用在 iOS 5 的 iTunes 中被拒绝,所以我想知道其他东西是否可以公开使用,例如蓝牙适配器。

【问题讨论】:

标签: iphone ios ios5 sdk bluetooth


【解决方案1】:

CoreBluetooth 在 iOS 5 中公开可用。不幸的是,它仅适用于新的蓝牙 LE(低能耗)设备。

CoreBluetooth Documentation

【讨论】:

【解决方案2】:

我需要以编程方式启用蓝牙。我所做的是使用 GKPeerPickerController,如果它还没有打开,它会要求你启用蓝牙。然后在调用 GKPeerPickerControllerDelegate 时,我关闭了选择器。

不完美,您会在短时间内看到“正在搜索设备”,但它的工作原理是缺乏另一种方法(据我所知)。

GKPeerPickerController * peerpicker = [[GKPeerPickerController alloc]init];
peerpicker.delegate = self;
peerpicker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
[peerpicker show];

当 peerpicker 准备好搜索时,会有一个委托方法返回 GKSession 供选择器使用。这就是你忽略它的地方。

-(GKSession*)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type
{
    [picker dismiss];
    [picker autorelease];
    return nil;
}

而且您的应用不会被拒绝。

【讨论】:

    【解决方案3】:

    根据iOS 5.0 Release Notes,没有提及任何公开可用的蓝牙功能。

    【讨论】:

      【解决方案4】:

      这不是公开的。你会被拒绝。

      【讨论】:

      • “公开”和“拒绝”是两个不同的东西。如果有这方面的 API,那么它是公开的。 Apple 可能会根据您的使用方式拒绝您的应用。
      • @whatchamacallit:除了没有用于控制蓝牙是启用还是禁用的系统偏好设置的 API。 EricS 的 PDF 是关于如何在 iOS 5 中使用蓝牙 LE,而不是如何打开/关闭蓝牙。
      【解决方案5】:

      不,蓝牙仍然不可用:(

      【讨论】:

      • 这更适合评论而不是答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2011-09-29
      • 2018-05-21
      • 1970-01-01
      相关资源
      最近更新 更多