これは、AltBeaconのAndroidビーコンライブラリでiBeaconsを検出するための正しいレイアウトですか?


93

次のビーコンレイアウトを使用してAndroidビーコンライブラリリファレンス実装アプリを正常に変更し、手元にあるiBeaconデバイスを検出できるようにしました。

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
        beaconManager.getBeaconParsers().add(new BeaconParser().
               setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
        beaconManager.bind(this);
    }
}

BLEパケットの内部については初めてなので、これが正しいレイアウトかどうかはわかりません。ライブラリはAltBeacon標準を承認し、そのドキュメントはiBeaconデバイスを検出する方法について言及していません。

  • このコードはすべての iBeaconデバイスを検出ますか?つまり、m:プレフィックスは制限が厳しすぎるか、それともiBeacon仕様に一致する正しいバイトシーケンスですか?
  • 同様に、残りのレイアウトはiBeacon仕様と完全に一致していますか?

参照:


リファレンスアプリケーションは...今ダウンしている
BlueTrin

1
@BlueTrinありがとう、新しいリポジトリへのリンクを更新しました。
2015

回答:


66

これは私のために働きました: "m:2-3 = 0215、i:4-19、i:20-21、i:22-23、p:24-24"

4c00の部分はメーカーIDなので一致させる必要はないと思うので、おそらく省略して、m:2-3 = 0215で始めることができます。


8
ありがとう!Estimoteビーコンでのテストから、m:2-3=0215変更が本当に必要であることを確認できます。
マティアッシュ2014

8
これも私にとってはうまくいきました。 -23、p:24-24 "));
ジョン

2
そのレイアウトをどのように読みますか?m、i、pとは何ですか?中国から購入した標準のビーコンがあります。Bluetooth LEスキャナーアプリを使用することで、メジャーとマイナーのビーコンのUUIDを見つけることができました。しかし、それを入れるUUIDパターンをどのように見つけますsetBeaconLayoutか?
エメン

3
@AimanB親切にこれを参照してください:stackoverflow.com/questions/25319682/…。この中で、m:製造元データ、i:近接UUID、i:メジャー番号、i:マイナー番号、p:信号電力、d:バッテリーレベル。それらはバイトオフセットを表します。(カウント中に6を追加する必要があります)例:製造元IDは、文字列 "m:2-3 = 0215、i:4-19、i:20-21、i:22-23、 p:24-24 "。
trueblue

3
見積もりかどうかに関係なく、周囲のビーコンをスキャンする方法はありますか?
Nジェイ

3

iBeacon仕様をダウンロードできます(「アートワークと仕様のダウンロード」をクリックしてください)。

現在のバージョンで会社IDがなければならないこと0x4C00、およびビーコンタイプがなければなりません0x0215。他のすべてのフィールドは必須であり、指定したとおりです。

はい、そうです、あなたは正確で、準拠するすべてのiBeaconを検出します。

OT:また、広告間隔は100ミリ秒でなければならないことも指定していますが、すべてのiBeaconがそれに忠実であることは疑わしいと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.