Программно включить / отключить режим "Battery Saver"
Я пытаюсь определить, могу ли я включить и / или отключить встроенный в Android режим "Battery Saver" программным способом.
Любые официальные подходы или обман, приветствуются.
Для справки, вот как это сделать, следуя стандартному пользовательскому интерфейсу Android 5.0: http://www.androidcentral.com/android-50-lollipop-basics-how-get-more-life-between-charges-battery-saver
Я знаю, что вы можете обнаружить это - это не то, что я после.
Спасибо всем.
2 ответа
Вы можете включить / отключить функцию экономии заряда батареи программно на устройствах с root-доступом. Вы должны отредактировать low_power
значение в global
стол, в /data/data/com.android.providers.settings/databases/settings.db
файл.
Если ваше устройство поддерживает settings
Команда, которую вы можете выполнить (как root):
settings put global low_power 1
включить энергосбережение и
settings put global low_power 0
отключить это. Если это не так, используйте sqlite3
команда:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global set value='1' where name='low_power';"
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global set value='0' where name='low_power';"
Помните, что сначала вы должны отключить телефон от ПК, в противном случае система отключит функцию энергосбережения. Используйте ADB через WiFi или Android Terminal (Эмулятор).
ОБНОВИТЬ:
sqlite3
метод больше не кажется надежным.
Я не уверен, будет ли отправлена трансляция android.os.action.POWER_SAVE_MODE_CHANGED. Может быть, вам придется отправить его вручную, как в коде здесь:
private static String COMMAND_ENABLE = "settings put global low_power 1\n" +
"am broadcast -a android.os.action.POWER_SAVE_MODE_CHANGED --ez mode true\n";
private static String COMMAND_DISABLE = "settings put global low_power 0\n" +
"am broadcast -a android.os.action.POWER_SAVE_MODE_CHANGED --ez mode false\n";
Также сообщалось, что в базе данных настроек появилась новая запись power_saving, однако в Android 6.0.1 мне не удалось ее найти. В Android 7.1.1_r13 low_power все еще используется для внутреннего использования (например, здесь), однако в некоторых версиях Android оно может измениться. Вы можете продолжать проверять изменения в этом и этом файле.
Вы не можете без рута вашего телефона. Я не уверен, почему это так, особенно там, где сейчас требуются службы определения местоположения для просмотра результатов сканирования, начиная с SdkVersion 23+ .
Эта проблема очень показательна. https://code.google.com/p/android/issues/detail?id=185370
Лучшим ответом будет то, что разработчики приложений вынуждены собирать данные о местоположении в сети для своих повелителей Google. Обратите внимание, что у самой ОС нет проблем с отображением результатов сканирования без включения служб определения местоположения.
Обнаружение того, что невозможно включить службы определения местоположения без GPS, где службы определения местоположения неактивны. Это двухступенчатое перемешивание является основной проблемой качества работы пользователей. Включите службы определения местоположения, затем выключите GPS.
Наблюдайте это место, больше замков на пути.