获取手机电池的剩余电量
取得手机电池的剩余量
* 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();}}
获取手机电池的剩余电量相关推荐
- 安卓项目查手机电量功能_Android获取手机电池电量用法实例
本文实例讲述了Android获取手机电池电量用法.分享给大家供大家参考.具体如下: 原理概述: 手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Int ...
- 获取手机电池信息及电池剩余使用时间问题说明
1.获取电池信息 通过电池状态改变广播 private BroadcastReceiver mBatInfoReceiver=new BroadcastReceiver(){public void o ...
- android 静态注册获取电量,获取手机电池百分比和电池容量方法
在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...
- 获取手机电池百分比和电池容量方法
在智能手机的开发过程中,经常需要获取手机的电池信息.其实获取的方法很多,下面介绍下方法. 一:首先介绍获取电池容量.例如java反射方式获取.代码如下 package com.example.jame ...
- Android应用开发获取手机电池电量的简单方法
Intent batteryInfoIntent = getApplicationContext().registerReceiver( null ,new IntentFilter( Intent. ...
- Android开发实例大全
<Android开发实例大全> 基本信息 作者: 王东华 丛书名: Android移动开发技术丛书 出版社:电子工业出版社 ISBN:9787121173172 上架时间:2012-8-1 ...
- Unity获取安卓手机运营商信息
Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用 一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了 ...
- Android中获取手机电量信息
有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器Inte ...
- Android之获取手机基本信息、内存信息、网路信息、电池信息,等一共18项数据
获取手机信息,代码复制可用,开发工具为:Android Studio 1.手机品牌 2.手机型号 3.屏幕分辨率 4.像素密度 5.屏幕尺寸 6.Android 系统版本 7.运行内存 8.储存空间 ...
最新文章
- 【8】青龙面板系列教程之nolanjdc的一键安装获取cookie【作者删库了,不用尝试了】
- 2020年高等数学方法与提高(上海理工大学)学习笔记:常微分方程
- WebSocket 从入门到写出开源库
- 动态规划之硬币表示问题
- 单片机 串口 波特率 c语言 9600 11.0592mhz t1,C51语言编程:单片机与 PC 串口通信程序...
- jquery中serialize()序列化函数
- 面试官问:MySQL的自增 ID 用完了,怎么办?
- Android平台ROM的定制及精简教程
- bat命令快捷修改ip地址
- python 写的第一个爬虫 下载网页视频,调用迅雷下载,男神喜欢
- 只用一招!Python实现微信防撤回!
- Idea 离线安装插件 Idea 安装离线插件
- Linux内核子系统---内存管理子系统、进程管理子系统
- L TEXT和 _T的区别
- 磁滞回线magnetic hysteresis loop
- JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法
- 大家查找医疗英文文献都去哪个网?
- 对于表单提交的防止重复提交
- 软件测试类型按开发阶段的划分
- vscode python F12无法跳转定义的解决