2017-11-18 8 views
0

私はAndroidビーコンライブラリAltBeaconを使用しています。 マイクロチップrn4870が検出されず、iBeaconsのみが表示されます。これらのBeaconParserを使用して、周囲のすべてのビーコンを検出します。誰かがどのように検出できるのか説明できますマイクロチップrn4870AltBeaconはMicropchip rn4870ビーコンを検出せず、iBeaconsのみを検出します

beaconManager = BeaconManager.getInstanceForApplication(this); 
    // To detect proprietary beacons, you must add a line like below corresponding to your beacon 
    // type. Do a web search for "setBeaconLayout" to get the proper expression. 

    ArrayList<BeaconParser> parsers = new ArrayList<>(); 

    parsers.add(new BeaconParser().setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25")); 
    parsers.add(new BeaconParser().setBeaconLayout("x,s:0-1=feaa,m:2-2=20,d:3-3,d:4-5,d:6-7,d:8-11,d:12-15")); 
    parsers.add(new BeaconParser().setBeaconLayout("s:0-1=feaa,m:2-2=00,p:3-3:-41,i:4-13,i:14-19")); 
    parsers.add(new BeaconParser().setBeaconLayout("s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-20v")); 
    parsers.add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24")); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_TLM_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_URL_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.URI_BEACON_LAYOUT)); 
    parsers.add(new BeaconParser().setBeaconLayout(BeaconParser.ALTBEACON_LAYOUT)); 

    beaconManager.getBeaconParsers().addAll(parsers); 
    beaconManager.bind(this); 

答えて

0

マイクロチップrn4870は、Bluetooth LEモジュールであり、必ずしもビーコン送信機ではないことを理解してください。このハードウェアでビーコントランスミッタを構築することはできますが、特定のビーコンフォーマットを送信するファームウェアをロードする必要があります。これを実行すると、iBeacon、AltBeacon、またはさまざまなEddystoneパケットが転送される可能性があります。

ボトムライン:問題はコードに示されている問題ではなく、問題は送信側にあります。

+0

どうすればいいですか? –

+0

残念ながら、カスタムビーコンファームウェアをrn4870にロードする方法に関するチュートリアルは、StackOverflow.comの質問の対象外です。ベンダに問い合わせて、そのような参照ファームウェアが提供されているかどうかを確認することができます。 – davidgyoung

関連する問題