Android Время ожидания Bluetooth GATT с Nordi c Thingy: 52 - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть приложение android, в котором после подключения к thingy52 через библиотеку (thingylib):

BluetoothDevice dev = scanResultList.get(nordicDeviceEntityList.get(pos).getAddress());
thingySdkManager.connectToThingy(getContext(), device, BaseTService.class);

Я хотел бы прочитать Nordy c thingy: 52 данных вместе с Значение RSSI, поэтому в другом упражнении, когда я хочу собрать данные, я присоединяю новый блютуз GATT:

private void startDataCollection() {
        for (BluetoothDevice dev : thingySdkManager.getConnectedDevices()){
            thingySdkManager.setConstantLedMode(dev, 1, 100, 1);
            ThingyListenerHelper.registerThingyListener(getApplicationContext(), mThingyListener, dev);
            //e vents
            thingySdkManager.enableMotionNotifications(dev, true);

            gatt = dev.connectGatt(getApplicationContext(), true, gattCallback);
        }
}

После этого к обратному вызову события Accellerometer thingylib я получаю данные и вызываю GATT для получения значения RSSI:

@Override
        public void onAccelerometerValueChangedEvent(BluetoothDevice bluetoothDevice, float x, float y, float z) {
            gatt.readRemoteRssi();
        }

Проблема, которую я обнаружил, состоит в том, что через несколько секунд (не детерминистически, иногда 5/10 с) устройство отключается с ошибкой 8 в GATT (ошибка тайм-аута). Если я удаляю ссылку GATT перед сбором данных, устройство не отключается и работает отлично. Я хотел знать, есть ли способ предотвратить тайм-аут подключенного GATT или я делаю что-то не так.

Мой android журнал:

2020-04-02 13:00:16.607 15336-15396/it.chiarani.beacon_detection D/BluetoothGatt: onClientConnectionState() - status=8 clientIf=9 device=F5:EF:EE:8B:92:7C
2020-04-02 13:00:16.609 15336-15380/it.chiarani.beacon_detection D/BluetoothGatt: onClientConnectionState() - status=8 clientIf=11 device=F5:EF:EE:8B:92:7C
2020-04-02 13:00:16.609 15336-15654/it.chiarani.beacon_detection D/BluetoothGatt: onClientConnectionState() - status=8 clientIf=10 device=F5:EF:EE:8B:92:7C
2020-04-02 13:00:16.610 15336-15654/it.chiarani.beacon_detection V/ThingyConnection: Error 8 : F5:EF:EE:8B:92:7C
2020-04-02 13:00:16.611 15336-15654/it.chiarani.beacon_detection D/BluetoothGatt: close()
2020-04-02 13:00:16.611 15336-15654/it.chiarani.beacon_detection D/BluetoothGatt: unregisterApp() - mClientIf=10
2020-04-02 13:00:16.670 15336-15336/it.chiarani.beacon_detection V/ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...