2016-07-06 1 views
0

ペアリングされたBluetoothデバイスをシステム設定から削除するか、「ペア解除」します。私はアップルがこれを行うために公開apiを提供していないことを知っているので私はプライベートクラスCBPairingAgentを試してみました。私はgithubの CBCentralManager.h CBPairingAgent.hにヘッダを発見し、ここに私のコードです:CBPairingAgent unpairPeerを使用することができます:ペアからBluetoothデバイスを削除する

- (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

デバイスにペアリングを削除するプライベートAPIは、JBデバイスでのみ可能なエンタイトルメントが十分にある場合に機能します。 JBオン

、私は(設定& SpringBordで見つかった)これらの資格を追加しました:

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

興味深いことに、これらのエンタイトルメントで動作するコードを共有できますか? – sage444

+0

上記のコードは動作するはずです。 CBPeripheralManagerからCBPairingAgentを取得して、CBPeripheral *を指定してunpairPeer:を呼び出して削除してください。 – mringwal

+0

私はJBデバイスを持っておらず、確認できません。多分誰かがそれをチェックします、ありがとう – sage444

関連する問題