2017-07-26 85 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庫進行設備跟蹤。