Android监听USB连接/断开,充电/未充电
16lz
2021-12-04
<?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; } } };}
更多相关文章
- Android连接指定WIFI
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power
- MTK Android(安卓)Driver:PMIC
- Android(安卓)FTP客户端使用,快速上传文件
- 如何消除原生Android原生网络连接显示x或者惊叹号
- Android网络连接处理
- Android连接SQLite数据库
- android获得手机的电量
- android Wifi自动连接