In my case ble device, has specific flow. After we send some characteristic value ble device update list of services.
After that i call method discoverAllServicesAndCharacteristics() and get updated list of services.
But for Android it looks like, library return cashed list of services even after we call discoverAllServicesAndCharacteristics().
The same code works fine for iOS, and i got updated list of services.
As you can see there are only one event for discoverServices(). But i call it multiple times method discoverAllServicesAndCharacteristics() after event onCharacteristicChanged characteristic=6d400004-b5a3-f393-e0a9-e50e24dcca9e.
I'll give it a look, but it might be cached on the system layer. There's a flag to reset GATT cache, but it can only be passed when connecting. I assume it won't be sufficient for you?
In my case ble device, has specific flow. After we send some characteristic value ble device update list of services. After that i call method
discoverAllServicesAndCharacteristics()
and get updated list of services. But for Android it looks like, library return cashed list of services even after we calldiscoverAllServicesAndCharacteristics()
. The same code works fine for iOS, and i got updated list of services.Logs:
As you can see there are only one event for
discoverServices()
. But i call it multiple times methoddiscoverAllServicesAndCharacteristics()
after eventonCharacteristicChanged characteristic=6d400004-b5a3-f393-e0a9-e50e24dcca9e
.