0
AndroidビーコンライブラリでEddystone-URLを使用しています。私はビーコンのdataFiledsに圧縮されたURLを入れましたが、私がシグナルを受け取ったとき、dataFieldsは空ですなぜこれが起こりうるのでしょうか?ここでは送信機のコードを添付:Androidビーコンライブラリを使用して仮想Eddystone-URLビーコンからURLを受信
try {
byte[] buf = UrlBeaconUrlCompressor.compress("http://www.google.com");
beacon = new Beacon.Builder()
.setId1("0000FEAA-0001-1000-8000-00805F9B34FB")
.setManufacturer(0xFEAA)
.setTxPower(-59)
.setDataFields(bytesToListOfLongs(buf))
.build();
} catch (MalformedURLException e) {
e.printStackTrace();
}
BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout(BeaconParser.EDDYSTONE_URL_LAYOUT);
beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
私は送信を開始する前にDataFieldsをデコードし、私にはよくURLを参照してくださいが、私は他のスマートフォンでは、このフィールドには何も受信していません。
私が提供しているEddystone-URLフォーマットは何ですか? –
ビーコン送信でデータをエンコードする場合、実際には、単純な固有の識別子を送信するように設計されたBluetoothビーコンの意図された使用以外になります。あなたはこれを行うことを歓迎しますが、あなたが意図した用途の外に出ているので、どのフォーマットを使用するかは実際には関係ありません。 Eddystone-URLを使用する場合は、URL内のデータをエンコードします。 Eddystone-UIDを使用する場合は、名前空間とインスタンスの識別子の中にエンコードします。 iBeaconまたはAltBeaconを使用する場合は、UUID、メジャーおよびマイナーID内でエンコードします。 – davidgyoung