¿Cómo hacer que la BootstrapRegion de la biblioteca AltBeacon reconozca el diseño de iBeacon?
Estoy usando referencia,http://altbeacon.github.io/android-beacon-library/samples.html . Yo tambien uso¿Cómo detectar Region Enter / Exit para múltiples balizas usando AltBeacon android-beacon-library?
Estoy tratando de detectar iBeacons en segundo plano usando la biblioteca de balizas de Android de AltBeacon. Incluí el siguiente fragmento de código de mi proyecto. Hasta ahora, no estoy detectando ibeacons en el fondo ... cualquier ayuda es apreciada
Estoy usando el BeaconManager para
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
Sin embargo, no recibo ningún error ni detección de baliza. Al ejecutar la aplicación en depuración en el dispositivo Samsung Galaxy 4, la aplicación se inicia pero no detecta balizas activas. Mis balizas son balizas rad que están configuradas como iBeacons. La aplicación Rad Beacon los detecta y también mi otra aplicación de biblioteca AltBeacon que se ejecuta en primer plano y detecta mis iBeacons. Estas aplicaciones se ejecutan en el Samsung Galaxy 4.
La aplicación que configuré para la detección de balizas de fondo ... no detecta los iBeacons.
Aquí está mi código. La referencia a Constants.java es solo un archivo de constantes para mi aplicación.
package com.myApp.BTleDemo;
import android.app.Application;
import android.content.Intent;
import android.util.Log;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import org.altbeacon.beacon.startup.BootstrapNotifier;
import org.altbeacon.beacon.startup.RegionBootstrap;
import org.altbeacon.beacon.Region;
import org.altbeacon.beacon.BeaconConsumer;
import org.altbeacon.beacon.BeaconManager;
import org.altbeacon.beacon.BeaconParser;
import org.altbeacon.beacon.MonitorNotifier;
import org.altbeacon.beacon.RangeNotifier;
import org.altbeacon.beacon.Region;
import org.altbeacon.beacon.Identifier;
public class BackgroundMode extends Application implements BootstrapNotifier{
private static final String TAG = ".BackgroundMode";
private RegionBootstrap regionBootstrap;
private BeaconManager beaconManager;
SharedPreferences prefs;
List<Region> regions;
public void onCreate() {
super.onCreate();
Log.d(TAG, "App started up");
beaconManager = BeaconManager.getInstanceForApplication(this);
// Add AltBeacons Parser for iBeacon
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
// wake up the app when any beacon is seen (you can specify specific id filers in the parameters below)
Region region = new Region("com.myApp.BTleDemo.boostrapRegion", Identifier.parse(Constants.BT_UUID),
Identifier.fromInt(Constants.BT_MAJOR), Identifier.fromInt(Constants.BT_MINOR));
regionBootstrap = new RegionBootstrap(this, region);
}
@Override
public void didDetermineStateForRegion(int arg0, Region arg1) {
// Don't care
}
@Override
public void didEnterRegion(Region arg0) {
Log.d(TAG, "Got a didEnterRegion call");
// This call to disable will make it so the activity below only gets launched the first time a beacon is seen (until the next time the app is launched)
// if you want the Activity to launch every single time beacons come into view, remove this call.
regionBootstrap.disable();
Intent intent = new Intent(this, MainActivity.class);
// IMPORTANT: in the AndroidManifest.xml definition of this activity, you must set android:launchMode="singleInstance" or you will get two instances
// created when a user launches the activity manually and it gets launched from here.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
}
@Override
public void didExitRegion(Region arg0) {
// Don't care
}
/*
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Log.i(TAG, "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}
}
*/
}
No obtengo ninguna detección de ibeacon. Ninguno de los listados de LogCat esperados se publican. ¿Me estoy perdiendo algún paso?