2017-07-26 87 views
0

我想在Android中广播多个Eddystone数据包。我读过它不能同时完成,但我们必须创建一个定时器并广播多个数据包。我想知道是否有任何限制,比如我们可以播放多少个独特的eddystone数据包?我可以在1秒内广播不同的多个数据包吗?在Android中广播不同的Eddystone数据包

回答

1

一些Android设备允许同时发送多个广告。这一切都取决于手机上的芯片组。没有办法事先知道这一点,但您可以重复尝试使用不同的信标标识符集开始广告,直到您收到错误消息。这是与Android灯塔库代码:

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库进行设备跟踪。