Определите, подключен ли кабель питания / USB к устройству Android

Мне нужно определить, подключен ли кабель питания (кабель USB). Все решения на SO используют широковещательный приемник для получения события изменения питания. Проблема с этим подходом заключается в том, что кабель может быть уже подключен до того, как мой приемник будет зарегистрирован, и в этом случае событие изменения не будет запущено. Мне нужен способ определить, подключен ли кабель, не полагаясь на широковещательный приемник.


person AndroidDev    schedule 24.09.2013    source источник
comment
Описано здесь: developer.android.com/training/monitoring -device-state/ Поскольку это фиксированное намерение, вам не нужно регистрировать BroadcastReceiver..... возвращается текущее намерение состояния батареи.   -  person Kuffs    schedule 24.09.2013


Ответы (1)


Проверьте эту ссылку.

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;
    }
}
person Prmths    schedule 24.09.2013