android 电池状态获取

骑猪看日落 2022-06-12 22:54 453阅读 0赞

private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
int intLevel = 0;
int intScale = 0;

  1. public void onReceive(Context context, Intent intent) \{
  2. String action = intent.getAction();
  3. /\*
  4. \* 如果捕捉到的actionACTION\_BATTERY\_CHANGED 就运行onBatteryInfoReceiver()
  5. \*/
  6. if (Intent.ACTION\_BATTERY\_CHANGED.equals(action)) \{
  7. intLevel = intent.getIntExtra("level", 0);
  8. intScale = intent.getIntExtra("scale", 100);
  9. // 电池伏数
  10. Log.d("Battery V", "" + intent.getIntExtra("voltage", 0));
  11. // 电池温度
  12. Log.d("Battery T", "" + intent.getIntExtra("temperature", 0));
  13. BatteryV = "当前电压为:" + intent.getIntExtra("voltage", 0);
  14. BatteryT = "当前温度为:" + intent.getIntExtra("temperature", 0);
  15. switch (intent.getIntExtra("status",
  16. BatteryManager.BATTERY\_STATUS\_UNKNOWN)) \{
  17. case BatteryManager.BATTERY\_STATUS\_CHARGING:
  18. BatteryStatus = "充电状态";
  19. break;
  20. case BatteryManager.BATTERY\_STATUS\_DISCHARGING:
  21. BatteryStatus = "放电状态";
  22. break;
  23. case BatteryManager.BATTERY\_STATUS\_NOT\_CHARGING:
  24. BatteryStatus = "未充电";
  25. break;
  26. case BatteryManager.BATTERY\_STATUS\_FULL:
  27. BatteryStatus = "充满电";
  28. break;
  29. case BatteryManager.BATTERY\_STATUS\_UNKNOWN:
  30. BatteryStatus = "未知道状态";
  31. break;
  32. \}
  33. switch (intent.getIntExtra("plugged",
  34. BatteryManager.BATTERY\_PLUGGED\_AC)) \{
  35. case BatteryManager.BATTERY\_PLUGGED\_AC:
  36. BatteryStatus2 = "AC充电";
  37. break;
  38. case BatteryManager.BATTERY\_PLUGGED\_USB:
  39. BatteryStatus2 = "USB充电";
  40. break;
  41. \}
  42. switch (intent.getIntExtra("health",
  43. BatteryManager.BATTERY\_HEALTH\_UNKNOWN)) \{
  44. case BatteryManager.BATTERY\_HEALTH\_UNKNOWN:
  45. BatteryTemp = "未知错误";
  46. break;
  47. case BatteryManager.BATTERY\_HEALTH\_GOOD:
  48. BatteryTemp = "状态良好";
  49. break;
  50. case BatteryManager.BATTERY\_HEALTH\_DEAD:
  51. BatteryTemp = "电池没有电";
  52. break;
  53. case BatteryManager.BATTERY\_HEALTH\_OVER\_VOLTAGE:
  54. BatteryTemp = "电池电压过高";
  55. break;
  56. case BatteryManager.BATTERY\_HEALTH\_OVERHEAT:
  57. BatteryTemp = "电池过热";
  58. break;
  59. \}
  60. \}
  61. \}
  62. \};

发表评论

表情:
评论列表 (有 0 条评论,453人围观)

还没有评论,来说两句吧...

相关阅读