-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Для работы sdk в AndroidManifest.xml требуется добавить следующие строки:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<service android:name="com.empatika.beaconstracker.BeaconsTrackerService" />
<receiver android:name="com.empatika.beaconstracker.StartupReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Подписаться на оповещения сервиса BeaconsTrackerService:
<receiver android:name="{Receiver}">
<intent-filter>
<action android:name="com.empatika.beaconstracker.RANGE_BEACONS" />
<action android:name="com.empatika.beaconstracker.NEW_BEACONS" />
<action android:name="com.empatika.beaconstracker.DEAD_BEACONS" />
<action android:name="com.empatika.beaconstracker.ENTER_REGIONS" />
<action android:name="com.empatika.beaconstracker.EXIT_REGIONS" />
</intent-filter>
</receiver>
-
Для подписки слушателя на обновления класс должен реализовать интерфейс IBeaconTrackerListener. Требуется реализовать следующий метод:
public void onServiceConnected(); -
В методе onServiceConnected() можно добавить слушателя на обновления биконов (BeaconManager) и/или регионов (RegionManager). Слушатели добавляются объекту класса BeaconTrackerManager. Пример:
manager.addBeaconManager(this, new BeaconManager() { @Override public void rangeBeacon(Beacon beacon) { Log.d(TAG, "range: " + beacon.toString()); } @Override public void newBeacon(Beacon beacon) { Log.d(TAG, "new: " + beacon.toString()); } @Override public void deadBeacon(Beacon beacon) { Log.d(TAG, "dead: " + beacon.toString()); } }); manager.addRegionManager(this, new RegionManager() { @Override public void enterRegion(Region region) { Log.d(TAG, "enter: " + region.toString()); } @Override public void exitRegion(Region region) { Log.d(TAG, "exit: " + region.toString()); } }); -
Объект класса BeaconsTrackerManager можно получить только при помощи статического метода getInstance(Context context), передав в него текущий контекст.
-
В onStart() вызвать метод класса BeaconsTrackerManager subscribe() для бинда активити с сервисом.
manager.subscribe(IBeaconTrackerListener); -
В onStop() вызвать метод класса BeaconsTrackerManager unsubscribe().
manager.unsubscribe(IBeaconTrackerListener); -
В классе ScannerConfiguration можно указать значения для длительности цикла работы ble.
ScannerConfiguration.setBackgroundScanCycleDelay(5000); ScannerConfiguration.setBackgroundScanDuration(10000); ScannerConfiguration.setForegroundScanCycleDelay(500); ScannerConfiguration.setForegroundScanDuration(1000);