这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章给大家介绍Android监听电池状态实例代码,对android监听电池状态相关知识感兴趣的朋友一起学习吧
如果要监听电池的状态改变,需要动态注册:android.intent.action.BATTERY_CHANGED,收到Action后可以根据对应的Key获取你需要的信息,更详细信息可以参考以下例子中的BatteryChangedReceiver类
具体代码如下所示:
- package com.example.charginganimation;
- import android.app.Activity;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.BatteryManager;
- import android.os.Bundle;
- import android.view.View;
- public class MainActivity extends Activity {
- private CustomClipLoading ccl;
- private BatteryChangedReceiver receiver = new BatteryChangedReceiver();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- registerReceiver(receiver, getFilter());
- }
- private IntentFilter getFilter() {
- IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_BATTERY_CHANGED);
- filter.addAction(Intent.ACTION_BATTERY_LOW);
- filter.addAction(Intent.ACTION_BATTERY_OKAY);
- return filter;
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- unregisterReceiver(receiver);
- super.onDestroy();
- }
- class BatteryChangedReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- final String action = intent.getAction();
- if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_CHANGED)) {
- System.out
- .println("BatteryChangedReceiver BATTERY_CHANGED_ACTION---");
- // 当前电池的电压
- int voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE,
- -1);
- // 电池的健康状态
- int health = intent
- .getIntExtra(BatteryManager.EXTRA_HEALTH, -1);
- switch (health) {
- case BatteryManager.BATTERY_HEALTH_COLD:
- System.out.println("BATTERY_HEALTH_COLD");
- break;
- case BatteryManager.BATTERY_HEALTH_DEAD:
- System.out.println("BATTERY_HEALTH_DEAD ");
- break;
- case BatteryManager.BATTERY_HEALTH_GOOD:
- System.out.println("BATTERY_HEALTH_GOOD");
- break;
- case BatteryManager.BATTERY_HEALTH_OVERHEAT:
- System.out.println("BATTERY_HEALTH_OVERHEAT");
- break;
- case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
- System.out.println("BATTERY_HEALTH_COLD");
- break;
- case BatteryManager.BATTERY_HEALTH_UNKNOWN:
- System.out.println("BATTERY_HEALTH_UNKNOWN");
- break;
- case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:
- System.out.println("BATTERY_HEALTH_UNSPECIFIED_FAILURE");
- break;
- default:
- break;
- }
- // 电池当前的电量, 它介于0和 EXTRA_SCALE之间
- int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
- // 电池电量的最大值
- int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
- // 当前手机使用的是哪里的电源
- int pluged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED,
- -1);
- switch (pluged) {
- case BatteryManager.BATTERY_PLUGGED_AC:
- // 电源是AC charger.[应该是指充电器]
- System.out.println("BATTERY_PLUGGED_AC");
- break;
- case BatteryManager.BATTERY_PLUGGED_USB:
- // 电源是USB port
- System.out.println("BATTERY_PLUGGED_USB ");
- break;
- default:
- break;
- }
- int status = intent
- .getIntExtra(BatteryManager.EXTRA_STATUS, -1);
- switch (status) {
- case BatteryManager.BATTERY_STATUS_CHARGING:
- // 正在充电
- System.out.println("BATTERY_STATUS_CHARGING ");
- break;
- case BatteryManager.BATTERY_STATUS_DISCHARGING:
- System.out.println("BATTERY_STATUS_DISCHARGING ");
- break;
- case BatteryManager.BATTERY_STATUS_FULL:
- // 充满
- System.out.println("BATTERY_STATUS_FULL ");
- break;
- case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
- // 没有充电
- System.out.println("BATTERY_STATUS_NOT_CHARGING ");
- break;
- case BatteryManager.BATTERY_STATUS_UNKNOWN:
- // 未知状态
- System.out.println("BATTERY_STATUS_UNKNOWN ");
- break;
- default:
- break;
- }
- // 电池使用的技术。比如,对于锂电池是Li-ion
- String technology = intent
- .getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);
- // 当前电池的温度
- int temperature = intent.getIntExtra(
- BatteryManager.EXTRA_TEMPERATURE, -1);
- System.out.println("voltage = " + voltage + " technology = "
- + technology + " temperature = " + temperature
- + " level = " + level + " scale = " + scale);
- } else if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_LOW)) {
- // 表示当前电池电量低
- System.out
- .println("BatteryChangedReceiver ACTION_BATTERY_LOW---");
- } else if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_OKAY)) {
- // 表示当前电池已经从电量低恢复为正常
- System.out
- .println("BatteryChangedReceiver ACTION_BATTERY_OKAY---");
- }
- }
- }
- }
获取apk和版本信息
- private int getVerCode(Context context) {
- int verCode = -1;
- try {
- verCode = context.getPackageManager().getPackageInfo(
- "com.example.charginganimation", 0).versionCode;
- } catch (NameNotFoundException e) {
- e.printStackTrace();
- }
- return verCode;
- }
- private String getVerName(Context context) {
- String verName = "";
- try {
- verName = context.getPackageManager().getPackageInfo(
- "com.example.charginganimation", 0).versionName;
- } catch (NameNotFoundException e) {
- e.printStackTrace();
- }
- return verName;
- }
以上代码内容是小编给大家介绍的android监听电池状态的实例代码,本文写的不好还请见谅,有好的意见欢迎给小编留言,我会及时给大家沟通的,谢谢大家一直以来对PHPERZ网站的支持!
来源: http://www.phperz.com/article/17/0916/348837.html