2017-09-19 20 views
0

私はBLEの開発に新しいので、私はバッテリーの状態とパーセンテージを示すデモを作成しています。正しく動作していますが、時には0%が表示されていますが、これは正しくありません。ここ は私のコードです:アンドロイドのBLEデバイスの正確なバッテリー残存率を得る方法

final byte[] data = characteristic.getValue(); 
    if (data != null && data.length > 0) { 
     final StringBuilder stringBuilder = new StringBuilder(data.length); 
     for(byte byteChar : data) 
      stringBuilder.append(String.format("%02X ", byteChar)); 

     final int flag = characteristic.getProperties(); 
     int format = -1; 
     if ((flag & 0x01) != 0) { 
      format = BluetoothGattCharacteristic.FORMAT_UINT16; 
      Log.d(TAG, " format UINT16."); 
     } else { 
      format = BluetoothGattCharacteristic.FORMAT_UINT8; 
      Log.d(TAG, " UINT8."); 
     } 
     int batterylevel = characteristic.getIntValue(format, 0); 
     Intent in = new Intent(getApplicationContext(), HomeActivity.class); 
     in.putExtra("battery_status", String.valueOf(batterylevel)); 
     in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(in); 
     finish(); 

    } 
+0

いずれかお手伝いできますか? – Sudhansu

答えて

0

は、以下のようなbatterylevelを取得しよう。

characteristic.getValue()[0] 
+0

こんにちはMehul私はそれに置き換えられますが、それでもデバイスが切断され、再び再接続するとき来ています。 – Sudhansu

関連する問題