我想在Android中播放多个Eddystone数据包。我读到它不能同时完成,但我们必须创建一个计时器并广播多个数据包。我想知道是否有任何限制,例如我们可以播放多少独特的eddystone数据包?我可以在1秒内广播不同的和多个数据包吗?
答案 0 :(得分:1)
某些Android设备执行允许同时发送多个广告。这一切都取决于手机上的芯片组。事先无法知道这一点,但您可以反复尝试使用不同的信标标识符集开始广告,直到收到错误消息。以下是Android Beacon Library的代码:
Beacon beacon = new Beacon.Builder()
.setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
.setId2("1")
.setId3("2")
.setManufacturer(0x0118)
.setTxPower(-59)
.setDataFields(Arrays.asList(new Long[] {0l}))
.build();
BeaconParser beaconParser = new BeaconParser()
.setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25");
BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
beaconTransmitter.startAdvertising(beacon beacon, new AdvertiseCallback() {
public void onStartFailure(int errorCode) {
// Called when failed
}
public void onStartSuccess(AdvertiseSettings settingsInEffect) {
}
});
还可以使用计时器通过每100ms左右更改标识符来模拟多个信标。因为发送器对于每个信标标识符将具有相同的MAC地址,所以不同类型的接收器将以不同方式处理这种情况。 iOS会将它们作为多个信标进行跟踪,使用Android Beacon Library的设备也会跟踪它们。