2016-07-06 222 views
0

我想从系统设置或“unpair”中删除配对的蓝牙设备。我知道苹果公司不提供这样的API,所以我尝试了私人课程CBPairingAgent。我发现头GitHub上 CBCentralManager.h CBPairingAgent.h这里是我的代码:我可以使用CBPairingAgent unpairPeer:从配对中删除蓝牙设备

- (void)unpair:(CBPeripheral *)peer { 
    id agent = [self.centralManager valueForKey:@"sharedPairingAgent"]; 
// [agent performSelector:@selector(setDelegate:) withObject:self.centralManager]; 
    [agent performSelector:@selector(unpairPeer:) withObject:peer]; 
} 

此代码运行没有错误,但也没有对周边任何影响。

有人可以指出我正确的方向吗?或者建议更好的方法

+0

您是否找到解决方案? – JBA

+1

@JBA不,因为我的应用程序没有正确的权利 – sage444

回答

1

如果进程有足够的权利,只能在JB设备上使用,删除设备配对的私有API才有效。

在JB,我已经添加了这些权利(在设置中发现& SpringBord):

  • com.apple.BTServer.allowRestrictedServices
  • com.apple.BTServer.le
  • com.apple .BTServer.programmaticPairing
+0

听起来很有意思,你能分享一个适用于这些权利的代码吗? – sage444

+0

上面显示的代码应该可以工作。只需从CBPeripheralManager获取CBPairingAgent并调用unpairPeer:用CBPeripheral *删除。 – mringwal

+0

我没有JB设备,无法检查它。也许别人会检查它,谢谢 – sage444