如何检查USB插座是否插入(使用AC / USB充电)? (android版本2.1 / 2.2)
我正在编写一个无线充电应用程序,我想获得不同类型的充电信号(无线,AC充电/ USB)。我使用broadcastReceiver获取充电信号,发现使用无线充电和交流充电返回相同的信号(交流充电)。 为了区分无线充电和交流充电,我想检测USB插座是否插入。我尝试使用Intent.ACTION_UMS_CONNECTED来检测USB信号,但它也会返回SD卡。
如何检查USB插座是否插入(使用AC / USB充电)? (android版本2.1 / 2.2)
答案 0 :(得分:1)
要检查设备使用AC / USB充电,请试试,
致电registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED))
。这将返回一个Intent,该Intent在BatteryManager
上定义了额外内容,以告知您是否已插入。
带代码的东西,
public class PowerUtil {
public static boolean isConnected(Context context) {
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
return plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB;
}
}
答案 1 :(得分:1)
从Jellybean 4.2开始,有BatterManager.BATTERY_PLUGGED_WIRELESS