просто интересно, можно ли изменить тайм-аут экрана с помощью кода в Android
просто интересно, можно ли изменить тайм-аут экрана с помощью кода в Android
Это просто сделать.. Вам следует научиться решать вашу проблему из исходного кода Android.
/**
* set screen off timeout
* @param screenOffTimeout int 0~6
*/
private void setTimeout(int screenOffTimeout) {
int time;
switch (screenOffTimeout) {
case 0:
time = 15000;
break;
case 1:
time = 30000;
break;
case 2:
time = 60000;
break;
case 3:
time = 120000;
break;
case 4:
time = 600000;
break;
case 5:
time = 1800000;
break;
default:
time = -1;
}
android.provider.Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, time);
}
Лучшим решением является выполнение одного из следующих действий (в зависимости от того, хотите ли вы, чтобы он был динамическим или статическим):
android:keepScreenOn
в макете (xml) (т.е. бесконечно предотвращать тайм-аут экрана в любое время),WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
при создании своей деятельности илиWakeLock
для управления тем, как долго экран должен быть динамическим.Ознакомьтесь с этим сообщением в блоге для более подробных примеров этих двух подходов.
Если кому-то нужно установить его никогда, вот код
Settings.System.putString(cr, Settings.System.SCREEN_OFF_TIMEOUT, "-1");
Установка тайм-аута экрана на -1, похоже, не делает точной работы с тем, что требуется.
Я обнаружил, что установка значения Integer.MAX_VALUE работает лучше.
Например:
android.provider.Settings.System.putInt(содержимое, Settings.System.SCREEN_OFF_TIMEOUT, Integer.MAX_VALUE);
Кажется, что максимальный тайм-аут устанавливается максимальным разрешением устройства.
Например, если при навигации к настройкам дисплея на вашем телефоне вы можете иметь максимальное время ожидания экрана 30 минут, выполнение вышеуказанного кода устанавливает тайм-аут экрана до 30 минут.