3

iPhone アプリに、近くにあるすべての Bluetooth デバイス (他の iPhone、Android、... 基本的に Bluetooth が有効になっているすべてのもの) のリストを表示させたいと考えています。プライベート フレームワーク「BluetoothManager」を使用しています (これが AppStore で拒否されることはわかっています)。

これまでのところ、すべてうまくいきました:

  • Bluetoothのオンとオフを切り替えることができます...
  • DeviceScanning が有効に設定されているという NSLog を取得します...
  • 関数 (BOOL)deviceScanningInProgress をチェックすると、「はい」も表示されます。

しかし、BTM は「BluetoothDeviceDiscoveredNotification」を投稿することはないようです。Bluetooth が有効になっている他の 2 つの iPhone がデバイスの隣にあり、アプリをテストしていますが、どれも検出されません (両方とも検出可能で、MAC が検出します!)

問題が何であるかについてのアイデアはありますか?

私はstackoverflowを閲覧し、誰かが基本的に同じコードを使用している別の質問を見つけました。参照:他の質問がわかりません。「機能している」にもかかわらず、アプリがデバイスを検出しないのはなぜですか。

いくつかの回答をいただければ幸いです。BluetoothManager に関するドキュメントがないため、助けを求めるためのリソースが徐々に不足しています ;o)

ありがとう!

4

3 に答える 3

2

私が使う:

[btManager  setDeviceScanningEnabled:YES];
[btManager scanForServices:0xFFFFFFFF];
于 2013-03-20T13:21:56.880 に答える
1

私は自分で質問の答えを見つけたかもしれないと思います。iOS5は「BluetoothDeviceDiscoveredNotification」が投稿される前にDeviceScanningの結果をフィルタリングしているようです。結局、ヘッドセットと同様のデバイスのみが「報告」され、他のiPhoneなどのデバイスは「ブロック」されます。

さて、フォローアップの質問:誰かがこのフィルタリングを通過する方法についてのアイデアを持っていますか?私は本当にデバイス(通信など)で何もする必要はありません、私はそれらを発見したいだけです!iOS5でそれを行う方法がないはずだとは信じられません!何か案は?

ありがとう!

于 2012-06-11T08:57:26.117 に答える
0

私は同じ問題を抱えていて、scanForServices:~0x0代わりに使用しましたsetDeviceScanningEnabled:YES

于 2012-08-01T00:38:11.487 に答える