取得手机电池的剩余量
 * Android API中的BroadcastReceiver(Android.content.BroadcastReceiver)
 * 类有点像Button中的Listener,当Receiver被注册后,会在后台等待其他程序
 * 的调用,程序将通过注册BroadcastReceiver时设置的IntentFilter来捕捉系统
 * 发出的Intent.ACTION_BATTERY_CHANGED这个action,再以此取得手机电池的剩
 * 余量。

public class Ex06_02Activity extends Activity { private int intLevel; private int intScale; private Button mButton01; private AlertDialog d; // 创建BroadcastReceiver private BroadcastReceiver mBatInfoReveiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String action = intent.getAction(); // 如果捕捉到action是ACRION_BATTERY_CHANGED // 就运行onBatteryInfoReveiver() if (intent.ACTION_BATTERY_CHANGED.equals(action)) { intLevel = intent.getIntExtra("level", 0); intScale = intent.getIntExtra("scale", 100); onBatteryInfoReceiver(intLevel, intScale); } } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mButton01 = (Button) findViewById(R.id.myButton1); mButton01.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 注册一个BroadcastReceiver,作为访问电池计量之用 registerReceiver(mBatInfoReveiver, new IntentFilter( Intent.ACTION_BATTERY_CHANGED)); } }); } // 拦截到ACTION_BATTRY_CHANGED后要执行的动作 private void onBatteryInfoReceiver(int intLevel, int intScale) { // TODO Auto-generated method stub d = new AlertDialog.Builder(Ex06_02Activity.this).create(); d.setTitle(R.string.str_dialog_title); d.setMessage(getResources().getString(R.string.str_dialog_body) + String.valueOf(intLevel * 100 / intScale) + "%"); d.setButton(getResources().getString(R.string.str_button2), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub // 取消注册,并关闭对话框 unregisterReceiver(mBatInfoReveiver); d.dismiss(); } }); d.show(); };
} 

系统获取电池方法以及根据电量改变指示灯的颜色,在BatteryService类中修改

final int level = mBatteryProps.batteryLevel;final int status = mBatteryProps.batteryStatus;final int batteryLowLedOn = 1000;final int batteryLowLedOff = 3000;
if (level <= 20) {try {if (mLight != null)mLightsService.close(mLight.getType());} catch (Exception e) {e.printStackTrace();}if (status == BatteryManager.BATTERY_STATUS_CHARGING) {// Solid red when battery is charging// mBatteryLight.setColor(mBatteryLowARGB);mLight = new com.android.internal.policy.Light(Light.CHARGING, 3000, 5000, mBatteryLowARGB);} else {// Flash red when battery is low and not charging// mBatteryLight.setFlashing(mBatteryLowARGB,// LightsService.LIGHT_FLASH_TIMED,// batteryLowLedOn, batteryLowLedOff);mLight = new com.android.internal.policy.Light(Light.LOW_BATTERY, batteryLowLedOn,batteryLowLedOff, mBatteryLowARGB);}try {mLightsService.open(mLight);} catch (Exception e) {e.printStackTrace();}} else {// mBatteryLight.turnOff();try {if (mLight != null)mLightsService.close(mLight.getType());elsemLightsService.close(com.android.internal.policy.Light.POWER_ALL); //i dont have time to test,set this to avoid the light not off} catch (Exception e) {e.printStackTrace();}if (level < 90) {mLight = new com.android.internal.policy.Light(Light.CHARGING, 3000, 5000, mBatteryMediumARGB);}else if(level >= 90){mLight = new com.android.internal.policy.Light(Light.CHARGE_COMPLETE,3000, 5000,mBatteryFullARGB);}else if (status == BatteryManager.BATTERY_STATUS_FULL){// mBatteryLight.setColor(mBatteryFullARGB);mLight = new com.android.internal.policy.Light(Light.CHARGE_COMPLETE, 0, 0, mBatteryFullARGB);}try {mLightsService.open(mLight);} catch (Exception e) {e.printStackTrace();}}

获取手机电池的剩余电量相关推荐

  1. 安卓项目查手机电量功能_Android获取手机电池电量用法实例

    本文实例讲述了Android获取手机电池电量用法.分享给大家供大家参考.具体如下: 原理概述: 手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Int ...

  2. 获取手机电池信息及电池剩余使用时间问题说明

    1.获取电池信息 通过电池状态改变广播 private BroadcastReceiver mBatInfoReceiver=new BroadcastReceiver(){public void o ...

  3. android 静态注册获取电量,获取手机电池百分比和电池容量方法

    在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...

  4. 获取手机电池百分比和电池容量方法

    在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...

  5. Android应用开发获取手机电池电量的简单方法

    Intent batteryInfoIntent = getApplicationContext().registerReceiver( null ,new IntentFilter( Intent. ...

  6. Android开发实例大全

    <Android开发实例大全> 基本信息 作者: 王东华 丛书名: Android移动开发技术丛书 出版社:电子工业出版社 ISBN:9787121173172 上架时间:2012-8-1 ...

  7. Unity获取安卓手机运营商信息

    Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用 一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了 ...

  8. Android中获取手机电量信息

    有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器Inte ...

  9. Android之获取手机基本信息、内存信息、网路信息、电池信息,等一共18项数据

    获取手机信息,代码复制可用,开发工具为:Android Studio 1.手机品牌 2.手机型号 3.屏幕分辨率 4.像素密度 5.屏幕尺寸 6.Android 系统版本 7.运行内存 8.储存空间 ...

最新文章

  1. mvc core2.1 Identity.EntityFramework Core 注册 (二)
  2. 从零开始入门 K8s | 应用配置管理
  3. 网上预约挂号系统代码_速看!全国民族运动会部分竞赛项目观众网上预约系统正式上线了...
  4. 【开发工具之Spring Tool Suite】6、用Spring Tool Suite简化你的开发
  5. 24 MM配置-采购-配额管理-定义编码范围
  6. mysql自动关闭_服务器mysql数据库老自动停止,请问怎么回事
  7. Go语言的异常处理之errors,panic, recover
  8. secureCRT下载地址,亲测有效
  9. ThinkPHP自定义错误页面
  10. 安装jdk的时候为什么会有两个jre文件
  11. 2019DeeCamp夏令营总结
  12. 算法11 抓住波粒二象性的火星人
  13. 浏览器的作用不只是搜索、浏览网页,它还隐藏着这些功能
  14. 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
  15. 关于存储器中的地址与数据的对应关系
  16. 大型网站系统架构的演化
  17. 单机Eureka的构建
  18. IPV4和IPV56的区别
  19. 解决ios在微信内置浏览器中video播放的全屏问题
  20. 电子与通信工程专业毕设选题推荐

热门文章

  1. java使用jdbc连接oracle,实现自定义sql查询,加载字段注释
  2. 我所了解的植物营养学常识,感兴趣的进~
  3. [报错]执行npm install.报If you are behind a proxy,please make sure that the proxy cinfig is set property.
  4. 2021滁州中学高考成绩查询,2021年滁州高考状元是谁分数多少分,历年滁州高考状元名单...
  5. OOA、OOD、OOP是什么?
  6. 老板挖个鱼塘,让用户免费钓鱼,结果所有人都惊呆了……
  7. Schemaless架构(二):Uber基于MySQL的Trip数据库
  8. 计算阶乘之后的零个数
  9. 中国超级计算机第一次获得冠军,中国“芯”超级计算机首获世界冠军
  10. 用 Python 制作一个桌面宠物,好玩!