Private Framework を使用して Bluetooth を有効にできます。
次に、近くのデバイスを検索する必要があります。deviceScanningEnabled コマンドが正しいと思いますが、返されたデバイスを取得するにはどうすればよいですか? コールバック関数はありますか? NotificationCenter にあるいくつかの通知について読みました?!
この文脈でどのように使用しますか?
Private Framework を使用して Bluetooth を有効にできます。
次に、近くのデバイスを検索する必要があります。deviceScanningEnabled コマンドが正しいと思いますが、返されたデバイスを取得するにはどうすればよいですか? コールバック関数はありますか? NotificationCenter にあるいくつかの通知について読みました?!
この文脈でどのように使用しますか?
私の知る限り、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 です。
交換
[btManager setDeviceScanningEnabled:YES];
と
[btManager scanForServices:0xFFFFFFFF];
理由はわかりませんが、近くにあるすべてのデバイスを見つけることができます。次に、デバイスをペアリングできます。
これは私が立ち往生しているところです...私は接続を取得したり、データを交換したりすることができません
ジェイルブレイクされた電話用に開発している場合は、サードパーティの BlueTooth ライブラリである BTStack をお勧めします。使いやすく、私にとっては非常にうまく機能しています。http://code.google.com/p/btstack/で入手できます。