Can anyone help me with estimote beacons sample android code to start with? -
hello started estimote beacons , trying build sample application finding beacons range , send notifications mobile devices when beacons near range.
this how set beacons. first want service class:
public class beaconservicing extends service { private static context context; private static final region all_beacons = new region(beaconconfig.global_region_id, beaconconfig.uuid, beaconutils.all_major, beaconutils.all_minor); private static beaconmanager beaconmanager; public static beaconmanager getbeaconmanager() { if (beaconmanager == null) { beaconmanager = new beaconmanager(context); } return sbeaconmanager; } @override public void oncreate() { super.oncreate(); context = this; startbeaconing(); } @override public ibinder onbind(intent intent) { return null; } private void startbeaconing() { if (beaconutils.iscapable()) { beaconmanager = getbeaconmanager(); beaconmanager.seterrorlistener(new beaconerror()); beaconmanager.setmonitoringlistener(new beaconmonitoring()); beaconmanager.setranginglistener(new beaconranging()); beaconmanager.setbackgroundscanperiod(beaconconfig.background_scan_period, beaconconfig.background_wait_period); beaconmanager.setforegroundscanperiod(beaconconfig.foreground_scan_period, beaconconfig.foreground_wait_period); beaconmanager.connect(new beaconmanager.servicereadycallback() { @override public void onserviceready() { beaconmanager.startmonitoring(all_beacons); } }); } } }
that call start beacon service. here want monitoring class:
public class beaconmonitoring implements beaconmanager.monitoringlistener { private static final string tag = beaconmonitoring.class.getsimplename(); @override public void onenteredregion(region region, list<beacon> beacons) { log.d(tag, "entering region: " + region.getidentifier()); beaconservicing.getbeaconmanager().startranging(region); // send notification have entered range of beacon } @override public void onexitedregion(region region) { log.d(tag, "exiting region: " + region.getidentifier()); beaconservicing.getbeaconmanager().stopranging(region); } }
that monitor when enter , exit region. methods can whatever need do. of other classes implement appropriate listener , override methods, this:
public class beaconranging implements beaconmanager.ranginglistener { @override public void onbeaconsdiscovered(region region, list<beacon> beacons) { } }
then beacon config classes contains scan periods , ids need:
public class beaconconfig { public static final long foreground_scan_period = 1000; public static final long foreground_wait_period = 0; public static final long background_scan_period = 5000; public static final long background_wait_period = 5000; public static final string global_region_id = app.getcontext().getpackagename(); public static final string uuid = "your uuid"; }
then start it, do:
startservice(new intent(this, beaconservicing.class));
and ready go. should enough @ least start in right direction.
Comments
Post a Comment