@tony Android's Bluetooth team messed up the update to Android 9. The cached GATT db structure is erased for bonded devices after the update, so the API gives an empty list of GATT services, making it impossible to communicate with the GATT characteristics. The only way to make it work again seems to be to unbond the Bluetooth device from the system and then bond again.