iOS 5:以编程方式打开和关闭蓝牙

时间:2012-02-08 20:33:44

标签: iphone ios ios5 sdk bluetooth

我看到以编程方式打开和关闭蓝牙是一个“私人api”的东西,在iOS的流行版本中会被苹果itunes商店拒绝。

但是在iOS 5中,我知道之前不再私有的私密内容,例如以编程方式更改屏幕亮度。执行此操作将不再使用iOS 5在iTunes中拒绝您的应用,因此我想知道其他内容是否公开可用,例如蓝牙适配器。

6 个答案:

答案 0 :(得分:5)

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

请参阅CoreBluetooth Documentation

答案 1 :(得分:2)

这不公开。你会被拒绝。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

我设法在运行OS 5.1的iPod上成功使用Private BluetoothManager API。

所以我说它仍然有用。

我在这里提供了一个示例:http://www.pocketmagic.net/?p=2827,位于文章的底部。 在那里,您不仅可以阅读蓝牙ON,OFF,还可以阅读远程蓝牙设备,并将其列在用户界面中。

答案 4 :(得分: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;
}

您的应用不会被拒绝。

答案 5 :(得分:1)

不,蓝牙仍无法使用:(