2013-03-28 3 views
0

У меня есть BleFindMeClient, работающий на HTC 1X + в сочетании с TI Mini Keyfob. Я пытаюсь немного расширить его, чтобы прочитать уровень заряда батареи (не регистрироваться для обновления батареи). Я могу сделать это с BTool, но мой Android прога выходит из строя, и я получаю сообщение отладки:Прочитать уровень заряда батареи - комплект Broadcom BLE и HTC 1x +

getCharacteristic - Служебная информация не найдена

Что это значит? И где я могу узнать, что означают эти и другие сообщения об ошибках?

Ясно, что я могу написать характеристики, потому что я могу установить будильник. Но есть что-то довольно базовое, что я не понял, что читает характеристики, но я не могу найти пример кода.

Может ли кто-нибудь бросить мне лучший фрагмент кода, пожалуйста, или определить что-то немое в следующем?

public class BatteryProfileClient extends BleClientProfile { 

private static String TAG = "BatteryProfileClient"; 
static public BleGattID myUuid = new BleGattID("0000180f-0000-1000-8000-00805f9b34fb"); 
private static final BleGattID BATTERY_CHARACTERISTIC = new BleGattID("00002a19-0000-1000-8000-00805f9b34fb"); 

private BatteryServiceClient mBatteryServiceClient = new BatteryServiceClient(); 

public BatteryProfileClient(Context context) { 
    super(context, myUuid); 

    Log.d(TAG, "Instantiated"); 

    ArrayList<BleClientService> services = new ArrayList<BleClientService>(); 
    services.add(mBatteryServiceClient); 

    init(services, null); 
} 


public void batt(BluetoothDevice device) { 
    BleCharacteristic battLevelCharacteristic = mBatteryServiceClient.getCharacteristic(device, BATTERY_CHARACTERISTIC); 
    byte b[] = battLevelCharacteristic.getValue(); 
    Log.d(TAG, "battery " + b); 
} 

}

ответ

0

не знаю, если им поздно, но это должно решить вашу проблему -

public int getbattery(BluetoothGatt mBluetoothGatt) { 

    BluetoothGattService batteryService = mBluetoothGatt 
      .getService(BATTERY_SERVICE_UUID); 
    if (batteryService == null) { 
     Log.d(TAG, "Battery service not found!"); 
     return 0; 
    } 

    BluetoothGattCharacteristic batteryLevel = batteryService 
      .getCharacteristic(BATTERY_LEVEL_UUID); 
    if (batteryLevel == null) { 
     Log.d(TAG, "Battery level not found!"); 
     return 0; 
    } 
    mBluetoothGatt.readCharacteristic(batteryLevel); 
    return batteryLevel.getIntValue(BluetoothGattCharacteristic.FORMAT_SINT8, 0); 
} 
+0

Hi Bro, Можете ли вы предоставить полный код монитора батареи и персонального компьютера в одном сервисе. – Shankar

Смежные вопросы