Подтвердить что ты не робот

Как определить состояние питания?

Есть ли простой способ получить уведомление, когда к телефону Android подключено питание USB или переменного тока?

4b9b3361

Ответ 1

Настройте a BroadcastReceiver для ACTION_BATTERY_CHANGED. Опция Intent дополнительно сообщит вам, что такое зарядное состояние - подробнее см. BatteryManager.

Ответ 2

В AndroidManifest.xml

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <receiver android:name=".receiver.PlugInControlReceiver">
        <intent-filter>
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
            <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
        </intent-filter>
    </receiver>
</application>

В коде

public class PlugInControlReceiver extends BroadcastReceiver {
   public void onReceive(Context context , Intent intent) {
       String action = intent.getAction();

       if(action.equals(Intent.ACTION_POWER_CONNECTED)) {
           // Do something when power connected
       }
       else if(action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
           // Do something when power disconnected
       }
   }
}

Ответ 3

другой способ - использовать диспетчер батарей. это я можно использовать для api >= 21

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;
    }
}

Ответ 4

Еще одна вещь, которую вы должны проверить, есть ли ошибки в манифесте --- > приложении. Если затем нажмите на поле с указанием ошибки и просто нажмите ссылку "Имя", Появится диалоговое окно для добавления класса. добавьте класс и в класс скопируйте код on on. Это код, который должен быть скопирован в файл класса, а не основной. благодаря Pzycoderz

Ответ 5

Вот еще один способ опроса информации:

читайте значения здесь: ex.

через оболочку Android:

cat /sys/class/power_supply/usb/online

1 = подключено, 0 = нет. Отражает состояние USB-соединения.

cat/sys/class/power_supply/ac/online

1 = подключено, 0 = нет. Отражает состояние подключения к сети.

Используя оба эти метода вместе, я думаю, что будет определять, получает ли устройство питание или нет. Не уверен, что место для всех устройств одинаково. Нашел местоположение так же, как и на Android 7+ и 5+, на планшете Samsung и устройстве RockChip.