android USB连接充电信号

时间:2011-12-07 07:34:48

标签: android usb broadcastreceiver wireless

如何检查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)

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