<?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下如何通过jni监控wifi网络连接、dhcpcd执行和power
  2. 关于在as上启动虚拟机时发生问题的解决
  3. 为android电源键添加重启项
  4. StevGuo系列文章翻译之Android电源管理
  5. Android9.0 P 电源管理&android各版本电量优化功能策略
  6. Android 获取手机电量
  7. android 电量

随机推荐

  1. Android点击左右按钮实现左右滑动页面切
  2. Android调用系统分享
  3. android 音频总结
  4. android:layout_weight 使用
  5. android 设置系统屏幕亮度
  6. Android(安卓)添加永不休眠
  7. 【Android】Web开发之通过标准Java接口处
  8. Android和H5混合开发(一)
  9. android rom
  10. Android中Service(服务)详解