Est-ce la bonne disposition pour détecter les iBeacons avec la bibliothèque de balises de Android)?
J'ai réussi à modifier le application d'implémentation de référence du Android Beacon Library à l'aide du suivant mise en page des balises , de sorte qu'il détecte un périphérique iBeacon que j'ai à portée de main:
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);
}
}
Étant donné qu’il est nouveau dans l’interne des paquets BLE, je ne sais pas si c’est la bonne disposition à utiliser. La bibliothèque approuve le standard AltBeacon et sa documentation ne mentionne pas comment détecter les périphériques iBeacon.
- Ce code détectera-t-il tous les périphériques iBeacon? c'est-à-dire le
m:
préfixe trop restrictif ou s'agit-il de la séquence d'octets correcte qui correspond à la spécification iBeacon? - De même, le reste de la mise en page correspond-il exactement à la spécification iBeacon?
Référence:
Cela a fonctionné pour moi aussi!
Je ne pense pas que vous ayez besoin de faire correspondre la partie 4c00 car il s’agit de l’identifiant du fabricant. Vous pouvez donc probablement laisser cela de côté et commencer par m: 2-3 = 0215 Tout le reste semble bon, et cela semble fonctionner.
Vous pouvez télécharger le spécification iBeacon (cliquez sur "Télécharger l’illustration et les spécifications").
Dans la version actuelle, l'ID de la société doit être 0x4C00
, et le type de balise doit être 0x0215
. Tous les autres champs sont obligatoires et comme vous l'avez spécifié.
Alors oui, vous avez tout à fait raison et il détectera tous les iBeacons conformes.
OT: Il spécifie également que l'intervalle de publicité doit être de 100 ms, mais je doute fort que tous les iBeacons s'en tiennent à cela.