Как сохранить значение rssi в фоновом режиме, используя BluetoothClassicLibrary Android - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу измерить расстояние между android телефонами и по этой причине мне нужно получать rssi отсканированных устройств каждую секунду, я решил работать с BluetoothClassicLibrary, который позволяет мне получить значение rssi, используя это:

        BluetoothConfiguration config = new BluetoothConfiguration();
        config.context = getApplicationContext();
        config.bluetoothServiceClass = BluetoothClassicService.class;
        config.bufferSize = 1024;
        config.characterDelimiter = '\n';
        config.deviceName = "Your App Name";
        config.callListenersInMainThread = true;

        config.uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Required

        BluetoothService.init(config);

        service = BluetoothService.getDefaultInstance();

        service.setOnScanCallback(new BluetoothService.OnBluetoothScanCallback() {
            @Override
            public void onDeviceDiscovered(BluetoothDevice device, int rssi) {
                Toast.makeText(MainActivity.this, device.getName()+" "+rssi, Toast.LENGTH_SHORT).show();


            }

            @Override
            public void onStartScan() {
                Toast.makeText(MainActivity.this, "start", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onStopScan() {
                Toast.makeText(MainActivity.this, "stop", Toast.LENGTH_SHORT).show();


            }
        });

        service.startScan();

Моя проблема в том, что я получаю rssi только один раз, а затем он останавливается, я пытаюсь получить значение rssi без остановки, даже если приложение находится в фоновом режиме или убито, пожалуйста, помогите!

...