Невозможно прочитать уровень заряда батареи с характеристиками чтения и записи из BLE - PullRequest
0 голосов
/ 16 июня 2020

Я также пробовал использовать обратный вызов, но этот обратный вызов не был вызван или отключен от сервера Gatt. Я также читаю и записываю значение из этого кода. чтение и запись работают нормально, но сервер батареи либо отключен, либо служба батареи не найдена для этого uuid.

private final boolean getbattery() {
    System.out.println("On Battery service!");

    BluetoothManager bluetoothManager= (BluetoothManager)this.getSystemService(Context.BLUETOOTH_SERVICE);
    BluetoothAdapter mBluetoothAdapter=bluetoothManager.getAdapter();
    BluetoothDevice device=mBluetoothAdapter.getRemoteDevice(mBluetoothDeviceAddress);

    BluetoothGatt mBluetoothGatt=device.connectGatt(getApplicationContext(),false, mGattCallback, 1);

    BluetoothGattService batteryService = mBluetoothGatt.getService(Battery_Service_UUID);
    if (batteryService == null) {
        System.out.println("Battery service not found for uuid :" + Battery_Service_UUID);
        return false;
    }

    BluetoothGattCharacteristic batteryLevel = batteryService.getCharacteristic(Battery_Level_UUID);
    if (batteryLevel == null) {
        System.out.println("Battery level not found!");
        return false;
    }

    mBluetoothGatt.readCharacteristic(batteryLevel);
    System.out.println("batteryLevel = " + mBluetoothGatt.readCharacteristic(batteryLevel));

    return true;
}

...