zoukankan      html  css  js  c++  java
  • android 电池信息 BatteryManager

    引用:http://blog.csdn.net/maqiutian/article/details/7246949

    Android中电池信息(Battery information)的取得
           这里介绍电池信息的取得.
           Android.content.BroadcastReceiver类
           Android.os.BatteryManager类

           ● 电池信息的取得,调用registerReceiver()方法。
             第1个参数,设置BroadcastReceiver实例
             第2个参数,设置追加了Intent.ACTION_BATTERY_CHANGED处理的IntentFilter实例。
           ● 在BroadcastReceiver的onReceive()事件,接收到的Intent.ACTION_BATTERY_CHANGED,包括下面的信息。
        “status”(int类型)…状态,定义值是BatteryManager.BATTERY_STATUS_XXX。
        “health”(int类型)…健康,定义值是BatteryManager.BATTERY_HEALTH_XXX。
        “present”(boolean类型)
        “level”(int类型)…电池剩余容量
        “scale”(int类型)…电池最大值。通常为100。
        “icon-small”(int类型)…图标ID。
        “plugged”(int类型)…连接的电源插座,定义值是BatteryManager.BATTERY_PLUGGED_XXX。
        “voltage”(int类型)…mV。
        “temperature”(int类型)…温度,0.1度单位。例如 表示197的时候,意思为19.7度。 
        “technology”(String类型)…电池类型,例如,Li-ion等等。

      1. package dev.demo.batterytest;  
      2.   
      3. import Android.app.Activity;  
      4. import Android.content.BroadcastReceiver;  
      5. import Android.content.Context;  
      6. import Android.content.Intent;  
      7. import Android.content.IntentFilter;  
      8. import Android.os.BatteryManager;  
      9. import Android.os.Bundle;  
      10. import Android.util.Log;  
      11.   
      12. public class BatteryTestActivity extends Activity {  
      13. /** Called when the activity is first created. */  
      14. @Override  
      15. public void onCreate(Bundle savedInstanceState) {  
      16. super.onCreate(savedInstanceState);  
      17. setContentView(R.layout.main);   
      18. }  
      19.   
      20. @Override  
      21. protected void onResume() {  
      22. super.onResume();  
      23.   
      24. IntentFilter filter = new IntentFilter();  
      25.   
      26. filter.addAction(Intent.ACTION_BATTERY_CHANGED);  
      27. registerReceiver(mBroadcastReceiver, filter);  
      28. }  
      29.   
      30. @Override  
      31. protected void onPause() {  
      32. super.onPause();  
      33.   
      34. unregisterReceiver(mBroadcastReceiver);  
      35. }  
      36.   
      37. private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {  
      38. @Override  
      39. public void onReceive(Context context, Intent intent) {  
      40. String action = intent.getAction();  
      41. if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {  
      42. int status = intent.getIntExtra("status"0);  
      43. int health = intent.getIntExtra("health"0);  
      44. boolean present = intent.getBooleanExtra("present"false);  
      45. int level = intent.getIntExtra("level"0);  
      46. int scale = intent.getIntExtra("scale"0);  
      47. int icon_small = intent.getIntExtra("icon-small"0);  
      48. int plugged = intent.getIntExtra("plugged"0);  
      49. int voltage = intent.getIntExtra("voltage"0);  
      50. int temperature = intent.getIntExtra("temperature"0);  
      51. String technology = intent.getStringExtra("technology");  
      52.   
      53. String statusString = "";  
      54.   
      55. switch (status) {  
      56. case BatteryManager.BATTERY_STATUS_UNKNOWN:  
      57. statusString = "unknown";  
      58. break;  
      59. case BatteryManager.BATTERY_STATUS_CHARGING:  
      60. statusString = "charging";  
      61. break;  
      62. case BatteryManager.BATTERY_STATUS_DISCHARGING:  
      63. statusString = "discharging";  
      64. break;  
      65. case BatteryManager.BATTERY_STATUS_NOT_CHARGING:  
      66. statusString = "not charging";  
      67. break;  
      68. case BatteryManager.BATTERY_STATUS_FULL:  
      69. statusString = "full";  
      70. break;  
      71. }  
      72.   
      73. String healthString = "";  
      74.   
      75. switch (health) {  
      76. case BatteryManager.BATTERY_HEALTH_UNKNOWN:  
      77. healthString = "unknown";  
      78. break;  
      79. case BatteryManager.BATTERY_HEALTH_GOOD:  
      80. healthString = "good";  
      81. break;  
      82. case BatteryManager.BATTERY_HEALTH_OVERHEAT:  
      83. healthString = "overheat";  
      84. break;  
      85. case BatteryManager.BATTERY_HEALTH_DEAD:  
      86. healthString = "dead";  
      87. break;  
      88. case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:  
      89. healthString = "voltage";  
      90. break;  
      91. case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:  
      92. healthString = "unspecified failure";  
      93. break;  
      94. }  
      95.   
      96. String acString = "";  
      97.   
      98. switch (plugged) {  
      99. case BatteryManager.BATTERY_PLUGGED_AC:  
      100. acString = "plugged ac";  
      101. break;  
      102. case BatteryManager.BATTERY_PLUGGED_USB:  
      103. acString = "plugged usb";  
      104. break;  
      105. }  
      106.   
      107. Log.v("status", statusString);  
      108. Log.v("health", healthString);  
      109. Log.v("present", String.valueOf(present));  
      110. Log.v("level", String.valueOf(level));  
      111. Log.v("scale", String.valueOf(scale));  
      112. Log.v("icon_small", String.valueOf(icon_small));  
      113. Log.v("plugged", acString);  
      114. Log.v("voltage", String.valueOf(voltage));  
      115. Log.v("temperature", String.valueOf(temperature));  
      116. Log.v("technology", technology);  
      117. }  
      118. }  
      119. };  
  • 相关阅读:
    Flink开发_Flink中的函数接口
    Netty简介
    java NIO简单了解
    Kafka发送消息流程
    Kafka高性能的原理
    Hbase表设计
    Hbase的读写过程
    Hbase各组件职责
    什么是java的深浅拷贝?
    Flink问题1
  • 原文地址:https://www.cnblogs.com/sode/p/2888393.html
Copyright © 2011-2022 走看看