Вот еще один способ опроса информации:
читать значения здесь: например.
через оболочку 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.
Для устройств, которые я упомянул, протестировано, оно работало.Файлы являются RO, только для чтения, вы должны только читать их, чтобы опросить информацию.API-интерфейсы Android не обеспечивали уровень детализации, который мне был необходим в той версии, в которой я должен был использовать (5.1.1), это было сделано.Я использовал предоставленный Android API для создания процесса запуска этих команд.Не требует рута.Это было сделано для приложения киоска.Вы также можете запустить тот же процесс, используя только Android API (файл, FileReader и т. Д.).
Вот пример Android API:
File aFile = new File("/sys/class/power_supply/ac/online");
try {
BufferedReader br = new BufferedReader(new FileReader(aFile));
char aBuff[] = new char[1];
int aCount = br.read(aBuff,0, 1);
Log.d(TAG, "run: Res:"+new String(aBuff));
}catch(Exception e){
Log.d(TAG, "Exception:Error:run: "+e.toString());
}