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

Как программно изменить тайм-аут экрана?

просто интересно, можно ли изменить тайм-аут экрана с помощью кода в Android

enter image description here

4b9b3361

Ответ 1

Это просто сделать.. Вам следует научиться решать вашу проблему из исходного кода 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);
}

Ответ 2

Лучшим решением является выполнение одного из следующих действий (в зависимости от того, хотите ли вы, чтобы он был динамическим или статическим):

  • Укажите атрибут android:keepScreenOn в макете (xml) (т.е. бесконечно предотвращать тайм-аут экрана в любое время),
  • Добавьте флаг WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON при создании своей деятельности или
  • Используйте WakeLock для управления тем, как долго экран должен быть динамическим.

Ознакомьтесь с этим сообщением в блоге для более подробных примеров этих двух подходов.

Ответ 3

Если кому-то нужно установить его никогда, вот код

Settings.System.putString(cr, Settings.System.SCREEN_OFF_TIMEOUT, "-1");

Ответ 4

Установка тайм-аута экрана на -1, похоже, не делает точной работы с тем, что требуется.

Я обнаружил, что установка значения Integer.MAX_VALUE работает лучше.

Например:

android.provider.Settings.System.putInt(содержимое, Settings.System.SCREEN_OFF_TIMEOUT, Integer.MAX_VALUE);

Кажется, что максимальный тайм-аут устанавливается максимальным разрешением устройства.

Например, если при навигации к настройкам дисплея на вашем телефоне вы можете иметь максимальное время ожидания экрана 30 минут, выполнение вышеуказанного кода устанавливает тайм-аут экрана до 30 минут.