android altbeacon bluetooth low energy -
i trying scan beacons bluetooth low energy , altbeacon-library on samsung galaxy s5, , maybe did not understand correctly, or can't running.
a part of manifest looks this:
<uses-sdk android:minsdkversion="18" android:targetsdkversion="21" /> <uses-permission android:name="android.permission.bluetooth" /> <uses-permission android:name="android.permission.bluetooth_admin" /> <application .... <service android:name=".beaconscanner" android:icon="@drawable/ic_launcher" android:label="beaconscanner" > </service> .... i scanning beacons inside service:
public class beaconscanner extends service implements beaconconsumer { private beaconmanager beaconmanager; private dbhelper mydb; @override public int onstartcommand(intent intent, int flags, int startid) { mydb = new dbhelper(this); if (build.version.sdk_int >= 19 && getpackagemanager().hassystemfeature(packagemanager.feature_bluetooth_le)) { // ble beaconmanager.setandroidlscanningdisabled(true); } else { // kein ble } beaconmanager = beaconmanager.getinstanceforapplication(this); beaconmanager.getbeaconparsers().add(new beaconparser().setbeaconlayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25")); beaconmanager.setforegroundbetweenscanperiod(15000l); beaconmanager.setbackgroundbetweenscanperiod(15000l); beaconmanager.bind(this); return service.start_sticky; } @override public void ondestroy() { super.ondestroy(); beaconmanager.unbind(this); } @override public ibinder onbind(intent intent) { return null; } @override public void onbeaconserviceconnect() { beaconmanager.setrangenotifier(new rangenotifier() { @override public void didrangebeaconsinregion(collection<beacon> beacons, region region) { if (beacons.size() > 0) { for(beacon beacon : beacons) { if (beacon != null && beacon.getid1() != null) { system.out.println("id1: " + beacon.getid1().tostring()); system.out.println("id2: " + beacon.getid2().tostring()); system.out.println("id3: " + beacon.getid3().tostring()); string majorminor = beacon.getid2().tostring() + "-" + beacon.getid3().tostring(); system.out.println(majorminor); long count = mydb.beaconexists(majorminor); system.out.println(count); if (count == 0) { getandinsertbeacondataset(mydb, majorminor); system.out.println("inserted beacon: " + majorminor); } } } } } }); try { beaconmanager.startrangingbeaconsinregion(new region("trewysuniquebeaconregion", null, null, null)); } catch (remoteexception e) { } } private boolean getandinsertbeacondataset(dbhelper dbhelper, string beaconid) { try { beacongetter beacongetter = new beacongetter(); return beacongetter.execute(dbhelper, beaconid).get(); } catch (exception e) { return false; } } } i checked, if phone able use bluetooth low energy, , is. if bluetooth not activated message library:
06-15 09:16:46.399: w/cycledlescanner(22748): bluetooth disabled. cannot scan beacons. if activate bluetooth, library working fine , beacon in range.
so maybe understood wrong, need activate bluetooth on android use bluetooth low energy? thought possible bluetooth-signals without activating bluetooth?
if possible scan bluetooth low energy without activating bluetooth: doing wrong?
any appreciated, in advance.
rholtermann
you must activate bluetooth use ble (low energy). otherwise can't scan beacons. device must support ble, modern devices support it.
Comments
Post a Comment