Android L Battery Saver Mode - startActivityforResult

Как вы все, возможно, знаете, Android L представил новую функцию, называемую режимом экономии заряда батареи. Я хочу направить пользователя из моего приложения к этому конкретному действию на странице настроек. Как мне это сделать?

Например: для запуска «Действия по использованию данных» на странице настроек я делаю следующее

Intent i = new Intent();
i.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity"));
startActivityForResult(i, 0);

Как я могу сделать что-то подобное для перехода на страницу экономии заряда батареи? Настройки -> Батарея -> (Параметры вверху справа) -> Экономия заряда

Спасибо


person user2453055    schedule 30.01.2015    source источник


Ответы (1)


Intent battSaverIntent = new Intent();
battSaverIntent.setComponent(new ComponentName("com.android.settings", "com.android.settings.Settings$BatterySaverSettingsActivity"));
startActivityForResult(battSaverIntent, 0);

У меня это сработало.

Но имейте в виду, что эта жестко запрограммированная строка не из настроек Android, поэтому это Я полагаю, ярлык может измениться.

РЕДАКТИРОВАТЬ:

Теперь ДЕЙСТВИЕ стало видимым в настройках Android (начиная с уровня API 22). См. здесь.

Теперь действие называется ACTION_BATTERY_SAVER_SETTINGS.

Но будьте осторожны, не на всех телефонах есть эта настройка, поэтому вам необходимо проверить ее.

person maksim    schedule 30.01.2015
comment
Отличное спасибо. Последующий вопрос - как вы думаете, мы можем изменить это программно? Есть ли другие лучшие практики для выполнения вышеуказанного? - person user2453055; 30.01.2015
comment
Я думаю, вам нужно использовать этот способ на данный момент. Но похоже, что скоро появится способ использовать для этого предопределенное действие (см. исходный код Android, строка 880) называется ACTION_BATTERY_SAVER_SETTINGS. - person maksim; 30.01.2015