Android电池信息(Battery information)

BatteryManager

java.lang.Object

android.os.BatteryManager

  • 中文:BatteryManager类包含了字符串和常量用于行动电池中的值改变的意图
    http://www.apihome.cn/api/android/BatteryManager.html

下面看一个例子

首先用到了两个重要的知识点

其一:Intent.ACTION_BATTERY_CHANGED,它包含了很多关于电池的信息

“status”(int类型)…状态,定义值是BatteryManager.BATTERY_STATUS_XXX。
“health”(int类型)…健康,定义值是BatteryManager.BATTERY_HEALTH_XXX。
“present”(boolean类型)
“level”(int类型)…电池剩余容量
“scale”(int类型)…电池最大值。通常为100。
“icon-small”(int类型)…图标ID。
“plugged”(int类型)…连接的电源插座,定义值是BatteryManager.BATTERY_PLUGGED_XXX
“voltage”(int类型)…mV。
“temperature”(int类型)…温度,0.1度单位。例如 表示197的时候,意思为19.7度。
“technology”(String类型)…电池类型,例如,Li-ion等等。

其二:BroadcastReceiver类

它是一种全局的监听器,用户监听系统全局的广播消息。它可以非常方便的实现系统中不同组件之间的通讯。需要了解的:http://blog.csdn.net/bobo8945510/article/details/52451072

首先注册一个广播类,代码如下:

public class BatteryReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        int currLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);  //当前电量
        int total = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 1);      //总电量
        int technology= intent.getIntExtra(BatteryManager.EXTRA_TECHNOLOGY, 2);
        //...还可以获得很多信息
        //剩余电量
        int percent = currLevel * 100 / total;
        Toast.makeText(context,"总电量: " + total + "%"
                              +"电池型号:"+technology+"currLevel电量: "
                              + currLevel,Toast.LENGTH_SHORT).show();
    }
}

MainActivity中的传递

but = (Button)findViewById(R.id.but);
        but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            //要特别的注意这一句代码。注册一个电池信息服务
                Intent batteryIntent = getApplicationContext().registerReceiver(new BatteryReceiver(),new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

           /*也可以在这里获取,通过batteryIntent .***
           *例如:”batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);//当前电量
           */
            }
        });

最重要的一步千万不要忘记,注册广播信息

<receiver android:name=".BatteryReceiver">
            <intent-filter>
                <action android:name="com.example.com.BATTERY_CHANGED"/>
                <category android:name="android.intent.category.DEFAULT" />
            intent-filter>
        receiver>

效果
Android电池信息(Battery information)_第1张图片

下载dome地址:http://download.csdn.net/detail/bobo8945510/9626988

你可能感兴趣的:(android)