获取Android设备电池电量状态
2016-09-18 13:42
381 查看
java学习手册下载
楼主自己开发的象棋棋谱app,含10万棋谱
![](https://img-blog.csdn.net/20160918134617642?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Android开发者可以利用BroadcastReceiver机制,获取电池电量变化的ACTION_BATTERY_CHANGED intent,进而获取当前android设备的电池状态。
具体操作步骤:
1. 创建一个监听ACTION_BATTERY_CHANGED事件的intentFilter。
2. 创建一个BroadcastReceiver对象,该对象可以接收broadcast intent。
3. 注册BroadcastReceiver对象来监听ACTION_BATTERY_CHANGED事件。
4. 在BroadcastReceiver对象中,重写onReceive方法,在onReceive方法的传入参数intent里获取需要的电池状态信息。
5. 在生命周期结束时,取消step4中的注册。
java代码
最后,以上例子都来源与安卓学习手册,例子源码,源码例子文档一网打尽。
楼主自己开发的象棋棋谱app,含10万棋谱
Android开发者可以利用BroadcastReceiver机制,获取电池电量变化的ACTION_BATTERY_CHANGED intent,进而获取当前android设备的电池状态。
具体操作步骤:
1. 创建一个监听ACTION_BATTERY_CHANGED事件的intentFilter。
2. 创建一个BroadcastReceiver对象,该对象可以接收broadcast intent。
3. 注册BroadcastReceiver对象来监听ACTION_BATTERY_CHANGED事件。
4. 在BroadcastReceiver对象中,重写onReceive方法,在onReceive方法的传入参数intent里获取需要的电池状态信息。
5. 在生命周期结束时,取消step4中的注册。
java代码
package mm.shandong.com.testbattery; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; public class TestBatteryActivity extends AppCompatActivity { BatteryChangedReceiver batteryChangedReceiver; Button btn_register; Button btn_unregister; TextView tv_heath; TextView tv_level; TextView tv_maxlevel; TextView tv_pluged; TextView tv_status; TextView tv_other; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_battery); tv_heath= (TextView) findViewById(R.id.tv_heath); tv_level= (TextView) findViewById(R.id.tv_level); tv_maxlevel= (TextView) findViewById(R.id.tv_maxlevel); tv_pluged= (TextView) findViewById(R.id.tv_pluged); tv_status= (TextView) findViewById(R.id.tv_status); tv_other= (TextView) findViewById(R.id.tv_other); batteryChangedReceiver=new BatteryChangedReceiver(); btn_register= (Button) findViewById(R.id.btn_register); btn_unregister= (Button) findViewById(R.id.btn_unregister); btn_unregister.setEnabled(false); } //注册电量监听的Broadcastreceiver public void registBatter(View view){ IntentFilter intentFilter=getFilter(); registerReceiver(batteryChangedReceiver,intentFilter); btn_register.setEnabled(false); btn_unregister.setEnabled(true); Toast.makeText(this, "电量变化的receiver已经注册成功" ,Toast.LENGTH_SHORT).show(); } //取消注册电量监听的Broadcastreceiver public void unRegistBatter(View view){ unregisterReceiver(batteryChangedReceiver); btn_register.setEnabled(true); btn_unregister.setEnabled(false); Toast.makeText(this,"电量变化的receiver已经取消注册", Toast.LENGTH_SHORT).show(); } ///获取IntentFilter对象 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; } public 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)) { // 当前电池的电压 int voltage = intent. getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1); // 电池的健康状态 int health = intent. getIntExtra(BatteryManager.EXTRA_HEALTH, -1); switch (health) { case BatteryManager.BATTERY_HEALTH_GOOD: tv_heath.setText("很好"); case BatteryManager.BATTERY_HEALTH_COLD: tv_heath.setText("BATTERY_HEALTH_COLD"); break; case BatteryManager.BATTERY_HEALTH_DEAD: tv_heath.setText("BATTERY_HEALTH_DEAD"); break; case BatteryManager.BATTERY_HEALTH_OVERHEAT: tv_heath.setText("BATTERY_HEALTH_OVERHEAT"); break; case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE: tv_heath.setText("BATTERY_HEALTH_OVER_VOLTAGE"); break; case BatteryManager.BATTERY_HEALTH_UNKNOWN: tv_heath.setText("BATTERY_HEALTH_UNKNOWN"); break; case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE: tv_heath. setText("BATTERY_HEALTH_UNSPECIFIED_FAILURE"); break; default: break; } // 电池当前的电量, 它介于0和 EXTRA_SCALE之间 int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); tv_level.setText(String.valueOf(level)); // 电池电量的最大值 int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); tv_maxlevel.setText(String.valueOf(scale)); // 当前手机使用的是哪里的电源 int pluged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); switch (pluged) { case BatteryManager.BATTERY_PLUGGED_AC: // 电源是AC charger.[应该是指充电器] tv_pluged.setText("电源是AC charger."); break; case BatteryManager.BATTERY_PLUGGED_USB: // 电源是USB port tv_pluged.setText("电源是USB port"); break; default: break; } int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); switch (status) { case BatteryManager.BATTERY_STATUS_CHARGING: // 正在充电 tv_status.setText("正在充电"); break; case BatteryManager.BATTERY_STATUS_DISCHARGING: tv_status.setText("BATTERY_STATUS_DISCHARGING"); break; case BatteryManager.BATTERY_STATUS_FULL: // 充满 tv_status.setText("充满"); break; case BatteryManager.BATTERY_STATUS_NOT_CHARGING: // 没有充电 tv_status.setText("没有充电"); break; case BatteryManager.BATTERY_STATUS_UNKNOWN: // 未知状态 tv_status.setText("未知状态"); break; default: break; } // 电池使用的技术。比如,对于锂电池是Li-ion String technology = intent. getStringExtra(BatteryManager.EXTRA_TECHNOLOGY); // 当前电池的温度 int temperature = intent. getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1); String str= "voltage = " + voltage + " technology = " + technology + " temperature = " + temperature; tv_other.setText(str); } else if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_LOW)) { // 表示当前电池电量低 } else if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_OKAY)) { // 表示当前电池已经从电量低恢复为正常 System.out.println( "BatteryChangedReceiver ACTION_BATTERY_OKAY---"); } } } }
最后,以上例子都来源与安卓学习手册,例子源码,源码例子文档一网打尽。
相关文章推荐
- 获取Android设备电池电量状态
- 获取Android设备电池电量状态
- 获取Android设备电池电量状态
- 获取Android设备电池电量状态
- 获取Android设备电池电量状态
- 获取设备电池电量及状态
- native层获取Android设备电池电量
- 【Android Training - Performance】优化电池续航能力[Lesson 1 - 监测设备的电量与充电状态]
- Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
- android 获取充电状态 电池电量
- Android 获取设备电池电量
- Android设备的电池续航时间优化(Optimizing Battery Life)——(一)监听电池电量和电池的充电状态
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- unity3d 获取电量电池状态等 android and ios
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- 如何获取iPhone电池的状态和当前的电量
- 获取当前手机的电池充电状态以及当前的电量
- 转: Android 电源管理专题之监测电池电量和充电状态Monitoring the Battery Level and Charging State
- Android学习之获取 电池电量 简单实例
- Android实现侦听电池状态显示、电量及充电动态显示的方法