取得手机电池的剩余量
 * 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. 【8】青龙面板系列教程之nolanjdc的一键安装获取cookie【作者删库了,不用尝试了】
  2. 2020年高等数学方法与提高(上海理工大学)学习笔记:常微分方程
  3. WebSocket 从入门到写出开源库
  4. 动态规划之硬币表示问题
  5. 单片机 串口 波特率 c语言 9600 11.0592mhz t1,C51语言编程:单片机与 PC 串口通信程序...
  6. jquery中serialize()序列化函数
  7. 面试官问:MySQL的自增 ID 用完了,怎么办?
  8. Android平台ROM的定制及精简教程
  9. bat命令快捷修改ip地址
  10. python 写的第一个爬虫 下载网页视频,调用迅雷下载,男神喜欢
  11. 只用一招!Python实现微信防撤回!
  12. Idea 离线安装插件 Idea 安装离线插件
  13. Linux内核子系统---内存管理子系统、进程管理子系统
  14. L TEXT和 _T的区别
  15. 磁滞回线magnetic hysteresis loop
  16. JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法
  17. 大家查找医疗英文文献都去哪个网?
  18. 对于表单提交的防止重复提交
  19. 软件测试类型按开发阶段的划分
  20. vscode python F12无法跳转定义的解决

热门文章

  1. matplotlib之pyplot模块——调整子图布局(subplots_adjust、tight_layout)
  2. 盘口技术大全(二): 盘口语言
  3. 搜索引擎优化SEO工具集合[转]
  4. cudagpus是什么_如何在cuda中复制不同gpus之间的内存
  5. vue管理后台项目中使用wangEditor富文本编辑器
  6. 三种256MB SPIFLASH的高性能模式和软复位学习笔记
  7. 艾司博讯:拼多多直通车点击率低怎么办
  8. 做人的基本原则(看完终生受益)
  9. npm 镜像淘宝替换
  10. python实现支付宝支付