0

デバイスの RSSI と校正された送信電力を考慮して、BLE デバイスまでの推定範囲を取得しようとしています。

調整された txPower は、周辺機器の iBeacon アドバタイズ パケットの最後のバイトとして送信されると考えられます。私が見つけたドキュメントによると、これらのパケットの長さは 30 バイトである必要があります。

ただし、byte[]パケットに対して返される の長さは 62 バイトです。このため、広告データの形式は不明です。

62 バイト パケットのフォーマットを解読する方法はありますか?

4

1 に答える 1

0

BLE デバイスをスキャンする場合、Android API は raw アドバタイズメント PDU のバイトだけでなく、スキャン応答 PDU も返します。 後者は、スキャン API によって返されるバイト配列で前者の末尾に追加されます。

このため、バイト配列 がビーコン フィールドにアクセスする場合、末尾から負のオフセットを確実に使用することはできません。最初から正のオフセットを使用する方が信頼性が高くなりますが、これでも、気になる製造元の広告 PDU の前に異常な PDU が挿入されると失敗する可能性があります。

100% の信頼性を得るには、すべての PDU を解析し、製造元の広告を見つけて、その中のバイトを調べる必要があります。Android Beacon Libraryを書いているときに、これを苦労して学びました。オープンソースなので、独自のスキャンを行いたい場合でも、それがどのように行われるかを確認することをお勧めします.

于 2016-11-29T05:11:06.277 に答える