当前位置:   article > 正文

Android监听USB连接/断开,充电/未充电_android 监听电源断开

android 监听电源断开
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <ScrollView
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent">
  9. <TextView
  10. android:id="@+id/text"
  11. android:layout_width="match_parent"
  12. android:layout_height="match_parent" />
  13. </ScrollView>
  14. </LinearLayout>
  1. package zhangphil.adb;
  2. import android.content.BroadcastReceiver;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.content.IntentFilter;
  6. import android.os.BatteryManager;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.os.Bundle;
  9. import android.widget.TextView;
  10. import java.text.SimpleDateFormat;
  11. import java.util.Date;
  12. public class MainActivity extends AppCompatActivity {
  13. private String TAG = "USB连接状态";
  14. private final static String USB_ACTION = "android.hardware.usb.action.USB_STATE";
  15. private TextView text;
  16. private String string = "";
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. text = findViewById(R.id.text);
  22. IntentFilter filter = new IntentFilter();
  23. filter.addAction(Intent.ACTION_BATTERY_CHANGED);
  24. filter.addAction(Intent.ACTION_BATTERY_LOW);
  25. filter.addAction(Intent.ACTION_BATTERY_OKAY);
  26. filter.addAction(Intent.ACTION_POWER_CONNECTED);
  27. filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
  28. filter.addAction(USB_ACTION);
  29. registerReceiver(mBroadcastReceiver, filter);
  30. registerReceiver(mBroadcastReceiver, new IntentFilter(USB_ACTION));
  31. }
  32. @Override
  33. protected void onDestroy() {
  34. super.onDestroy();
  35. unregisterReceiver(mBroadcastReceiver);
  36. }
  37. private void displayMsg(String s) {
  38. SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm:ss:SSS");
  39. string = string + sdf.format(new Date()) + "\t\t" + s + "\n";
  40. text.setText(string);
  41. }
  42. private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
  43. @Override
  44. public void onReceive(Context context, Intent intent) {
  45. String action = intent.getAction();
  46. switch (action) {
  47. case USB_ACTION:
  48. boolean connected = intent.getExtras().getBoolean("connected");
  49. if (connected) {
  50. displayMsg("USB已连接");
  51. } else {
  52. displayMsg("USB未连接");
  53. }
  54. break;
  55. case Intent.ACTION_BATTERY_CHANGED:
  56. //电量发生改变。
  57. displayMsg("电量发生改变");
  58. boolean isCharging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;
  59. if (isCharging) {
  60. //剩余电量。
  61. int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
  62. //电量最大值。
  63. int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
  64. //电量百分比。
  65. float batteryPct = level / (float) scale;
  66. displayMsg("充电," + level + "-" + batteryPct + "-" + scale);
  67. }
  68. break;
  69. case Intent.ACTION_BATTERY_LOW:
  70. displayMsg("电量过低");
  71. break;
  72. case Intent.ACTION_BATTERY_OKAY:
  73. displayMsg("电量满");
  74. break;
  75. case Intent.ACTION_POWER_CONNECTED:
  76. displayMsg("电源接通");
  77. break;
  78. case Intent.ACTION_POWER_DISCONNECTED:
  79. displayMsg("电源断开");
  80. break;
  81. }
  82. }
  83. };
  84. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/738313
推荐阅读
相关标签