2

1つの理由は、ユーザーがデバイスを検出可能にしていないことは明らかです。私は他の人を探しています。

Bluetoothデバイスをスキャンしているときに、「すべての」検出可能なデバイスのリストが「毎回」取得されるわけではないことを確認しました(誰もが知っていると思います)。私が普段読んでいる開発者向けドキュメントによるとランダムですが、このランダム性の背後にある理由が必要です。理由は「スキャナー」デバイスと「スキャン」デバイスの両方にあると感じています。

たとえば、私のAndroidスマートフォンでは、1回のスキャンが終了した直後に[スキャン]ボタンを押すと、最初のスキャンで取得したデバイスの30%を取得することはほとんどありません。これは私に何がうまくいかないのか疑問に思います!(2回目のスキャンで新たに「検出された」デバイスについて話していることに注意してください。ほとんどのデバイスに表示されるリストには、以前のスキャンで検出された古い「キャッシュされた」デバイスが表示されます)

(関連する)質問は、(Androidデバイスで)スキャン時間を12秒から30秒に増やすと、不足しているデバイスを発見する可能性が高くなるということです。

PS:私はこの質問にAndroidのタグを付けていませんが、Bluetooth用語の観点から、Android固有の回答と、低レベルの回答を取得できれば幸いです)

4

1 に答える 1

2

Bluetooth検出は、利用可能な無線スペクトル全体に照会パケットをブロードキャストすることによって機能します。検出可能モードのBluetoothデバイスは、受信したパケットに対する応答を送信します。Bluetoothの無線層の詳細により、範囲内のすべてのデバイスが照会パケットを受信することは保証されませんが、実際には、スキャンが通常の10秒間実行される場合、確率は100%に近くなります。

変動のより可能性の高い理由は、Bluetoothの範囲が短いため、通常は10〜20メートルです。したがって、最初のスキャン中に範囲内にあったデバイスが移動して、範囲外になった可能性があります。多くの人が動き回る場所でスキャンを行う場合は、これがおそらく理由です。

短距離に関連するもう1つの理由は、一部のデバイスがBluetooth範囲の端にある可能性があるため、照会パケットまたは照会応答パケットのいずれかが送信中に失われる可能性が高いことです。Bluetoothチップセットは、範囲を概算するために使用できる照会応答のRSSI値を提供しますが(BT 2.1->、IIRC)、この情報は通常、照会機能によって表示されません(たとえば、Android照会ではこれは表示されません)。 。

于 2012-06-12T04:45:53.573 に答える