4

私たちは簡単な実験のために iOS プライベート フレームワーク BluetoothManager を使用しています。現在、次の行のみがデバイスを返します。

for(BluetoothDevice* device in [[BluetoothManager sharedInstance] pairedDevices])

残念ながら、既にペアリングされているデバイスのみが返されますが、これは私たちが望んでいるものではありません。connectingDevicesの代わりに使用pairedDevicesしても、デバイスはまったく返されません。では、手の届くところにある Bluetooth デバイスを検出できるようにするためには、どのようなオプションが必要でしょうか? iOS以外のデバイスを発見したいのでGameKitは使えないと思います。

どんな提案でも大歓迎です。

4

3 に答える 3

3

私は数日間プライベート フレームワークをいじっていますが、近くのデバイスのリストを取得するのは非常に簡単です。

まず、次を使用してデバイスのスキャンを有効にする必要があります。

[[BluetoothManager sharedInstance] setDeviceScanningEnabled:YES];

範囲内にデバイスがある場合、 BluetoothDeviceDiscoveredNotification通知を通知センターに投稿し始めます。これらにサブスクライブすると、コールバックに配信される NSNotification 内のオブジェクトのタイプがBluetoothDevice*になります。

BluetoothManager は検出されたデバイスをどこかに保存していると確信していますが、すべてを自分の NSMutableArray に入れただけです。

残念ながら、プライベート API を使用してデバイスと実際にペアリングする方法はまだわかりません。

于 2011-12-08T20:15:40.813 に答える
3

BluetoothManager を使用して Bluetooth をオンにしてから、リモート デバイスの Bluetooth スキャンを有効にする必要があります。

通知コールバックを登録すると、検出されたデバイスが取得されます。通知オブジェクトは、実際には BluetoothDevice オブジェクトへのポインターです。

BluetoothDevice オブジェクト ポインターを取得すると、そこから名前、アドレスを取得したり、リモート デバイスに接続したりできます。

ここには RSSI はありません。BluetoothDevice.h ファイルを見ると、メソッドの完全なリストを確認できます。

iOS 5.1 と互換性のある完全なサンプルをここに書きました: http://www.pocketmagic.net/?p=2827

幸運を!

于 2012-07-16T20:53:16.787 に答える
-2

GameKit フレームワークの一部であるGKSessionクラスは、Bluetooth を使用して近くの iOS デバイスを検出して接続する機能を提供するため、探しているものです。

于 2011-06-29T12:15:21.993 に答える