<?xml version="1.0" encoding="utf-8"?>                
package zhangphil.adb;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.widget.TextView;import java.text.SimpleDateFormat;import java.util.Date;public class MainActivity extends AppCompatActivity {    private String TAG = "USB连接状态";    private final static String USB_ACTION = "android.hardware.usb.action.USB_STATE";    private TextView text;    private String string = "";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text = findViewById(R.id.text);        IntentFilter filter = new IntentFilter();        filter.addAction(Intent.ACTION_BATTERY_CHANGED);        filter.addAction(Intent.ACTION_BATTERY_LOW);        filter.addAction(Intent.ACTION_BATTERY_OKAY);        filter.addAction(Intent.ACTION_POWER_CONNECTED);        filter.addAction(Intent.ACTION_POWER_DISCONNECTED);        filter.addAction(USB_ACTION);        registerReceiver(mBroadcastReceiver, filter);        registerReceiver(mBroadcastReceiver, new IntentFilter(USB_ACTION));    }    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver(mBroadcastReceiver);    }    private void displayMsg(String s) {        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm:ss:SSS");        string = string + sdf.format(new Date()) + "\t\t" + s + "\n";        text.setText(string);    }    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            String action = intent.getAction();            switch (action) {                case USB_ACTION:                    boolean connected = intent.getExtras().getBoolean("connected");                    if (connected) {                        displayMsg("USB已连接");                    } else {                        displayMsg("USB未连接");                    }                    break;                case Intent.ACTION_BATTERY_CHANGED:                    //电量发生改变。                    displayMsg("电量发生改变");                    boolean isCharging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;                    if (isCharging) {                        //剩余电量。                        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);                        //电量最大值。                        int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);                        //电量百分比。                        float batteryPct = level / (float) scale;                        displayMsg("充电," + level + "-" + batteryPct + "-" + scale);                    }                    break;                case Intent.ACTION_BATTERY_LOW:                    displayMsg("电量过低");                    break;                case Intent.ACTION_BATTERY_OKAY:                    displayMsg("电量满");                    break;                case Intent.ACTION_POWER_CONNECTED:                    displayMsg("电源接通");                    break;                case Intent.ACTION_POWER_DISCONNECTED:                    displayMsg("电源断开");                    break;            }        }    };}

 

更多相关文章

  1. Android连接指定WIFI
  2. 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power
  3. MTK Android(安卓)Driver:PMIC
  4. Android(安卓)FTP客户端使用,快速上传文件
  5. 如何消除原生Android原生网络连接显示x或者惊叹号
  6. Android网络连接处理
  7. Android连接SQLite数据库
  8. android获得手机的电量
  9. android Wifi自动连接

随机推荐

  1. Android应用开发笔记(13): Android移动应
  2. 从0开始学Android之Android生命周期
  3. Android(安卓)自定义阴影Shadow颜色,大小
  4. Android(安卓)HAL实现的三种方式(1) - 基
  5. 对2016年android实习就业的一些看法
  6. Android中多次弹出相同Toast提示框长时间
  7. Android牟利之道--广告平台的介绍
  8. Android(安卓)So简单加固
  9. Android(安卓)11 Beta 版正式发布!以及众
  10. Android学习之Android广播机制