I android beacon library konfigurieren Pakete EddystoneDetect-TLM Eddystone mit Android Leuchtfeuer Bibliothek
beaconManager = BeaconManager.getInstanceForApplication(context);
// Detect the main identifier (UID) frame:
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("s:0-1=feaa,m:2-2=00,p:3-3:-41,i:4-13,i:14-19"));
// Detect the telemetry (TLM) frame:
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("x,s:0-1=feaa,m:2-2=20,d:3-3,d:4-5,d:6-7,d:8-11,d:12-15"));
// Detect the URL frame:
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("s:0-1=feaa,m:2-2=10,p:3-3:-41,i:4-21v"));
beaconManager.bind(this);
Beacon zu erkennen, in nie in Android Leuchtfeuer Bibliothek nachgewiesen.
@Override
public void onBeaconServiceConnect() {
beaconManager.addMonitorNotifier(this);
beaconManager.addRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons,
Region region) {
if (beacons.size() > 0) {
Extra.log("Beacons detected", "info");
//Process beacons data...
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region(
"myRangingUniqueId", null, null, null));
} catch (RemoteException e) {
}
}
Test:
- Wenn Leuchtfeuer in Eddystone-TML so konfiguriert ist, kann ich Leuchtfeuer Telemetriedaten mit Herstellern App erfassen.
- Wenn Beacon in Eddystone-TML konfiguriert ist, kann ich Beacon mit Bibliothek nicht erkennen.
- Wenn Beacon in Eddystone-UID konfiguriert ist, kann ich Beacon korrekt mit Bibliothek und Hersteller App erkennen.
onBeaconServiceConnect() wird einmal beim Start aufgerufen. didRangeBeaconsInRegion mit beacons.size() == 0 wird oft aufgerufen, auch wenn Beacon ausgeschaltet ist. Gerät ist Android 5.1. – user3782779
Ich teste Bibliothek im selben Gerät mit Eddystone - UID und Albeacon Beacons und funktioniert ok. Problem ist nur in Eddystone - TLM Beacon. – user3782779
Siehe meine Bearbeitung, erklären, wie TLM-Daten zugreifen – davidgyoung