안드로이드 배터리 잔량 구하기

Intent.ACTION_BATTERY_CHANGED는 Sticky Intent로 시스템에 등록되어 있어서 registerReceiver()를 호출하면 즉시 반환됩니다. 반환된 Intent에서 필요한 값을 추출해 배터리 잔량을 %로 계산해 반환하는 메서드입니다.

public static int getBatteryPercentage(Context context) {
    Intent batteryStatus = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
    int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

    float batteryPct = level / (float)scale;
    return (int)(batteryPct * 100);
}

댓글 남기기