1

Private Framework を使用して Bluetooth を有効にできます。

次に、近くのデバイスを検索する必要があります。deviceScanningEnabled コマンドが正しいと思いますが、返されたデバイスを取得するにはどうすればよいですか? コールバック関数はありますか? NotificationCenter にあるいくつかの通知について読みました?!

この文脈でどのように使用しますか?

4

3 に答える 3

2

私の知る限り、Bluetooth マネージャーは、OS が結果をフィルタリングした後にリストを取得します。つまり、すべての汎用デバイスではなく、近くのヘッドセット デバイスのみを取得します。すべての汎用デバイスを見つける必要がある場合は、@rajagp の回答を使用する必要があります。

ヘッドセットを見つけるだけで十分な場合は、あなたが言ったように通知を使用できます。デバイスを検出するための通知は、「BluetoothDeviceDiscoveredNotification」と呼ばれます。まず、次のように通知を一覧表示する必要があります。

[[NSNotificationCenter defaultCenter] 
    addObserver: self
    selector: @selector( your_discovery_method_name)
    name: @"BluetoothDeviceDiscoveredNotification"
    object: nil];

「your_discovery_method_name」は、通知を表示/受け入れるために作成するメソッドです。次のようになります。

-(void) your_discovery_method_name:(NSNotification *) notification {
     self.device = [notification object];

     NSLog(@"found: %@",self.device.address);
     // ...
}

デバイスのタイプは BluetoothDevice です。

于 2012-06-03T11:24:53.697 に答える
0

交換

[btManager setDeviceScanningEnabled:YES]; 

[btManager scanForServices:0xFFFFFFFF];

理由はわかりませんが、近くにあるすべてのデバイスを見つけることができます。次に、デバイスをペアリングできます。

これは私が立ち往生しているところです...私は接続を取得したり、データを交換したりすることができません

于 2013-03-20T12:58:30.410 に答える
0

ジェイルブレイクされた電話用に開発している場合は、サードパーティの BlueTooth ライブラリである BTStack をお勧めします。使いやすく、私にとっては非常にうまく機能しています。http://code.google.com/p/btstack/で入手できます。

于 2012-01-10T15:43:21.473 に答える