Обнаружение подключаемого устройства

Я хотел бы иметь возможность определять, подключено ли устройство. Я хотел бы иметь возможность просто запросить то же самое, что мы можем сделать для состояния подключения. Это возможно, или мне нужно создать широковещательный приемник, который прослушивает события батареи?

1 ответ

Решение

По-видимому, ACTION_BATTERY_CHANGED является "липкой трансляцией", что означает, что вы можете зарегистрироваться и получать ее в любое время после трансляции. Чтобы получить подключенное состояние, вы можете сделать что-то вроде:

public void onCreate() {
    BroadcastReceiver receiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
            if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
                // on AC power
            } else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
                // on USB power
            } else if (plugged == 0) {
                // on battery power
            } else {
                // intent didnt include extra info
            }
        }
    };
    IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    registerReceiver(receiver, filter);
}
Другие вопросы по тегам