Ik heb de referentie-implementatie-appvan de Android Beacon-bibliotheekmet behulp van de volgende beacon layout, zodat het een iBeacon-apparaat detecteert dat ik heb op hand:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.bind(this);
}
}
Omdat ik nieuw ben in de interne aspecten van BLE-pakketten, weet ik niet zeker of dit de juiste lay-out is om te gebruiken. De bibliotheek onderschrijft de AltBeacon-standaard en de documentatie vermeldt niet hoe iBeacon-apparaten kunnen worden gedetecteerd.
- Detecteert deze code alleiBeacon-apparaten? d.w.z. is het voorvoegsel
m:
te beperkend of is het de juiste bytereeks die overeenkomt met de iBeacon-specificatie? - Evenzo, komt de rest van de lay-out exact overeen met de iBeacon-specificaties?
Referentie:
Antwoord 1, autoriteit 100%
Dit werkte voor mij: “m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24”
Ik denk niet dat je het 4c00-gedeelte hoeft te matchen, omdat dat de fabrikant-ID is, dus je kunt dat waarschijnlijk weglaten en beginnen met m:2-3=0215 Al het andere ziet er goed uit en het lijkt te werken.
Antwoord 2, autoriteit 7%
Je kunt de iBeacon-specificatiedownloaden (klik op “Download artwork en specificaties”).
In de huidige versie moet de bedrijfs-ID moet0x4C00
zijn en moet het bakentype 0x0215
zijn. Alle andere velden zijn verplicht, en zoals je hebt aangegeven.
Dus ja, je hebt helemaal gelijk en het zal alle compatibele iBeacons detecteren.
OT: Het specificeert ook dat het advertentie-interval 100 ms moet zijn, maar ik betwijfel ten zeerste of alle iBeacons zich daaraan houden.