确认手机是否支持BLE电池电量服务。
检查代码,确认UUID是否正确。
确认服务和特征是否已连接并且已订阅。
确认权限已授予。
以下是一个示例代码:
private BluetoothGattCharacteristic mBatteryLevelCharacteristic;
private BluetoothGatt mBluetoothGatt;
//连接服务和特征
mBluetoothGatt = device.connectGatt(context, false, mGattCallback);
BluetoothGattService batteryService = mBluetoothGatt.getService(BATTERY_SERVICE_UUID);
mBatteryLevelCharacteristic = batteryService.getCharacteristic(BATTERY_LEVEL_CHARACTERISTIC_UUID);
//读取电池电量
mBluetoothGatt.readCharacteristic(mBatteryLevelCharacteristic);
然后,在回调方法中处理电池电量特征:
private BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
if (status == BluetoothGatt.GATT_SUCCESS && characteristic.getUuid().equals(BATTERY_LEVEL_CHARACTERISTIC_UUID)) {
int batteryLevel = characteristic.getValue()[0];
Log.i(TAG, "Battery Level: " + batteryLevel);
}
}
};