実際の電流、電圧などのAndroidデバイスのバッテリーに関する情報を取得しようとしています...電圧、レベルの取得に成功しました...しかし、残念ながら、API 16で実行される電話があり、パラメーターBatteryManager.BATTERY_PROPERTY_CURRENT_NOWはありません' API 21 で表示されるため、この API には存在しません。
では、たとえばこのデバイスの現在の情報とバッテリー容量の情報を取得するにはどうすればよいでしょうか?
前もって感謝します。
実際の電流、電圧などのAndroidデバイスのバッテリーに関する情報を取得しようとしています...電圧、レベルの取得に成功しました...しかし、残念ながら、API 16で実行される電話があり、パラメーターBatteryManager.BATTERY_PROPERTY_CURRENT_NOWはありません' API 21 で表示されるため、この API には存在しません。
では、たとえばこのデバイスの現在の情報とバッテリー容量の情報を取得するにはどうすればよいでしょうか?
前もって感謝します。
BatteryManager は API 16 で動作するため、次のユーティリティが役立ちます。
package com.example.utils;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import com.example.app.AppContext;
import com.example.app.AppManager;
public class BatteryUtils {
public static Intent getBatteryIntent() {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
return AppContext.getInstance().registerReceiver(null, ifilter);
}
public static int getScale(Intent intent) {
return intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
}
public static int getLevel(Intent intent) {
return intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
}
public static int getChargeStatus(Intent intent) {
return intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
}
public static boolean isCharging(int status) {
return status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
}
public static boolean isCharging(Intent intent) {
int status = getChargeStatus(intent);
return isCharging(status);
}
public static void test() {
Intent intent = BatteryUtils.getBatteryIntent();
DebugUtils.log("isCharging:" + BatteryUtils.isCharging(intent) + ";level:" + BatteryUtils.getLevel(intent) + ";Scale:" + BatteryUtils.getScale(intent));
}
}
BatteryManager を使用してみてください。API 16 で動作します。
https://developer.android.com/reference/android/os/BatteryManager.html
それを使用すると、ステータス(充電中、フル、放電)、容量、USBまたはワイヤレスで充電しているかどうか、バッテリーの状態などを取得できます