ビーコンの「レイアウト」は、ビーコンの形式、具体的には、さまざまなフィールドがBluetooth LE広告パケット内の情報を送信するために必要なバイトにどのようにコード化されているかを示します。
Appleなどの一部の企業は、営業秘密としてのビーコンフォーマットを維持しているため、公開することはできません。 Android Beacon Libraryのようなオープンソースモジュールには、公開せずにこれらのビーコンをデコードする方法を含めることはできません。そのため、ユーザーはレイアウト文字列を使用します。これは、ユーザーがビーコンをデコードするためにライブラリにすばやく簡単に伝える手段です。ここ
は、人々がそれを公開する気にしないオープンソースAltBeacon形式、たとえば次のとおり
m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25
これは、このレイアウトに一致ブルートゥースLEビーコン送信は、このような符号化/復号化することができることを意味します。
- バイト4-19にその最初の識別子(iBeacon UUIDに相当ID1)を有する2および3
- バイト位置に0xbeacの2つのバイトタイプコードとメーカー広告パケット(m)を使用します。
- 第2の識別子(iBeaconメジャーに相当するID2)がバイト20-21にあります。
- バイト22-23の3番目の識別子(ID3はiBeacon minorに相当)を持っています。
- レイアウトの「p」および「d」部分は、距離推定のための「パワー」校正値と、バッテリレベルおよび他の製造業者固有の情報を格納する「データ」フィールドを参照します。
iBeaconとEddystoneのような他の一般的なビーコンフォーマットがあります。これらはそれぞれ独自のレイアウト文字列を持っています。これらは両方とも上記のものと非常に似ています。
という異なるビーコンフォーマットを同じ意味で使用することはできませんが、iOSとAndroidの両方でこれらのビーコンフォーマットをすべて使用できます。 Android上で独自のフォーマットを使用すると、その後、ビーコンフォーマットのための右のレイアウト文字列を見つけるためにGoogle検索を行って、このようにそれを設定するだけです:
私は完全に探していた回答のようなものだ
BeaconManager.getBeaconParsers().add(
new BeaconParser().setBeaconLayout("<paste layout string here>"));
!ダビッドありがとう!ビーコン(とその権利)についてもっと学ぶための私の本を知っていますか?再度、感謝します。 – Anthony
(うわー、あなたはRadius Networkのチーフエンジニア、David Youngですね?:D) – Anthony
私は同僚のSteven Statlerが書いたビーコンブック[ここ](https://www.amazon.com/Beacon-Technologies-Hitchhikers-Guide-Beacosystem/dp/1484218884)のみ知っています。私はAltBeaconの章に寄稿しましたが、ロイヤルティ・チェックでは最初のビールはまだ支払われていません。 :) – davidgyoung