Как да промените RSSI на BLE в Android

Използвам устройство за маяк Kontakt и тествам ble на nexus 5. Когато тествах iPad като устройство за маяк, мога да открия услугите и характеристиките с помощта на кода, даден на сайта за разработчици на Android. Но сега искам да направя някои действия в зависимост от разстоянието на мобилния телефон от устройството за маяк. Така че се опитах да открия колко далеч е мобилният телефон от устройството за маяк като iOS CLBeacon.Proximity (CLProximityFar, CLProximityNear, CLProximityImmideate & CLProximityUnknown). Търсих, но не можах да намеря така в android. Затова реших да направя някои действия в зависимост от rssi. Но проблемът е какъвто и да е rssi, който получавам за първи път, т.е. по време на откриване на мобилно устройство за маяк не се променя дори ако се приближа до устройството за маяк или се отдалеча от него.

Ако някой има идея как да получи променящия се rssi в android, моля, споделете. Благодаря.


person Abhijit Shelke    schedule 21.08.2014    source източник


Отговори (1)


Не съм сигурен как сте проверили никога непроменения rssi, както описахте, чрез съществуващо ПРИЛОЖЕНИЕ или писане на кодове сами?

но от кода е съвсем ясно, сложих основен код в Android 5.0,

//get your device's BT adapter
mBluetoothAdapter = ((BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter();
mLescanner = mBluetoothAdapter.getBluetoothLeScanner();
settings = new ScanSettings.Builder().setScanMode(scanSettings.SCAN_MODE_LOW_LATENCY).build();
mLescanner.startScan(this.mLeScanCallback);

Обратното извикване е така и можете да получите rssi в реално време във функцията:

this.mLeScanCallback = new ScanCallback() {
    @Override
    public void onScanResult(int callbackType, ScanResult result) {
        int realTimeRssiYouWant = result.getRssi(); 
    }
} 
person Shawn    schedule 07.02.2015