在Android

时间:2017-07-26 00:31:08

标签: ibeacon-android android-ibeacon eddystone

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

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的设备也会跟踪它们。