0
我正在使用Eddystone-URL与Android Beacon库。我将压缩的URL放入Beacon的dataFiled中,但是当我收到信号时,dataFields为空为什么会发生这种情况?重视这里的发射机代码:使用Android Beacon库从虚拟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);
我开始传送之前解码的数据域,我看得很清楚的URL,但我没有在其他智能手机领域这个事情接受。
好的,但是那么Eddystone-URL格式为我提供了什么? –
如果您在信标传输中对数据进行编码,那么您实际上已经超出了旨在传输简单唯一标识符的蓝牙信标的预期用途。欢迎您这样做,但是因为您超出了预期的使用范围,所以使用哪种格式确实无关紧要。如果您使用Eddystone-URL,则可以将URL中的数据进行编码。如果您使用Eddystone-UID,则将其编码到名称空间和实例标识符中。如果使用iBeacon或AltBeacon,则将其编码到UUID,主要和次要标识符中。 – davidgyoung