6

値の読み方について話しているのではありません。

むしろ、BatteryManager.EXTRA_HEALTH の値がどのように設定されているかに興味があります。

それはファームウェアから来ていますか?メーカー指定?

これらの値を決定するものは何ですか?

int BATTERY_HEALTH_COLD 
int BATTERY_HEALTH_DEAD 
int BATTERY_HEALTH_GOOD 
int BATTERY_HEALTH_OVERHEAT 
int BATTERY_HEALTH_OVER_VOLTAGE 
int BATTERY_HEALTH_UNKNOWN  
int BATTERY_HEALTH_UNSPECIFIED_FAILURE

ありがとう、サイモン

4

3 に答える 3

6

このコードを使用すると、バッテリーに関する情報を取得できます。

private BroadcastReceiver battery_receiver = new BroadcastReceiver()
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        boolean isPresent = intent.getBooleanExtra("present", false);
        String technology = intent.getStringExtra("technology");
        int plugged = intent.getIntExtra("plugged", -1);
        int scale = intent.getIntExtra("scale", -1);
        int health = intent.getIntExtra("health", 0);
        int status = intent.getIntExtra("status", 0);
        int rawlevel = intent.getIntExtra("level", -1);
        int level = 0;
        String temp=null;

        Bundle bundle = intent.getExtras();

        Log.i("BatteryLevel", bundle.toString());

        if(isPresent)
        {
            if (rawlevel >= 0 && scale > 0) {
                level = (rawlevel * 100) / scale;
            }

            String info = "Battery Level: " + level + "%\n";

            info += ("Technology: " + technology + "\n");
            info += ("Plugged: " + getPlugTypeString(plugged) + "\n");
            info += ("Health: " + getHealthString(health) + "\n");
            info += ("Status: " + getStatusString(status) + "\n");
            info += ("Temp: "+getTempStatus(temp,intent)+"\n");

            setBatteryLevelText(info + "\n\n" + bundle.toString());
        }
        else
        {
            setBatteryLevelText("Battery not present!!!");
        }
    }
};
private void registerBatteryLevelReceiver(){
    IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);

    registerReceiver(battery_receiver, filter);
}
于 2012-04-11T12:42:58.260 に答える
5

リチウム イオン バッテリーには、健康状態を追跡して報告する簡単なオンボード コンピューターが搭載されています。状態インジケーターは標準化されていますが、バッテリーによって報告される状態インジケーターをトリガーする条件は、バッテリーの製造元によって決定されます。

于 2012-04-11T02:18:00.997 に答える