如何识别充电器端口的连接? [复制]
Posted
技术标签:
【中文标题】如何识别充电器端口的连接? [复制]【英文标题】:How to identify the connection to charger port? [duplicate] 【发布时间】:2013-06-30 17:08:46 【问题描述】:我想检测充电器或USB之类的东西是否连接到设备的充电器端口。有没有办法实现这一点?
我试过这个link。它在充电器连接和断开时工作。它适用于所有设备吗?
提前致谢
【问题讨论】:
我问你,它适用于充电器和usb连接吗?在一些更高版本的设备中,即使使用相同的端口,也有充电和usb的选项。 从下面的答案中看到这一点:plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB
- 你可以用任何一种方式返回,USB 和 AC 充电有单独的标志。
【参考方案1】:
是的,您可以通过意图广播监控电池状态。
电池监视器示例:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
public class ChargeMon extends BroadcastReceiver
private boolean mCharging;
private boolean mUsb;
private boolean mAC;
public void start(Context c)
c.registerReceiver(this, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
public void stop(Context c)
c.unregisterReceiver(this);
public boolean isCharging()
return mCharging;
public boolean isUsb()
return mUsb;
public boolean isAC()
return mAC;
@Override
public void onReceive(Context context, Intent intent)
if(Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction()))
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,-1);
mCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
mUsb = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
mAC = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
【讨论】:
我希望电池充满时这不会起作用。 @AshaSoman 这完全取决于是否广播意图:developer.android.com/training/monitoring-device-state/… 您可以添加更多意图过滤器进行监控。以上是关于如何识别充电器端口的连接? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Android M 默认 USB 配置设置为 MTP 而不是“仅充电”?
如何从充电器取电5V9V12V的方法,XSP06触发QC/PD充电器快充