デバイスのRSSIと較正された送信電力を考慮して、BLEデバイスの推定範囲を取得しようとしています。Android BLE iBeaconアドバタイズパケットが予想よりも大きい
較正されたtxPowerは、おそらく、周辺機器のiBeacon広告パケットの最後のバイトとして放出されます。これらのパケットは、私が見つけたドキュメントによれば、長さが30バイトでなければなりません。
ただし、返されるパケットのbyte[]
の長さは62バイトです。このため、広告データのフォーマットは不明である。
なぜこれが起こっている可能性があり、62バイトのパケットの形式を解読する方法がありますか?
これは奇妙です。ペリフェラルの校正されたtxPowerを取得する簡単な方法はありますか?較正された定数は、広告から本当に必要なものです。 – Orbit
広告のバイトから定数を取得する必要があります。 PDUを解析するより簡単な解決策は、静的なiBeaconプレフィックスのバイトパターンを検索し、そこからのオフセットに基づいて較正定数を見つけることです。このアプローチの欠点は、(チャンスによって)バイトシーケンスが広告内の別の場所に表示され、そのテクニックが失敗することです。 – davidgyoung