Время ожидания экрана Android
Я знаю, что можно использовать wakelock для хранения экрана, процессора, ect, но как я могу программно изменить настройку « Тайм-аут экрана » на телефоне Android.
- Получить объект JSON из ответа HTTP
- Защищенные поля Java vs public getters
- Как разбирать parsing json Использование GSON в android
- Изменить фон списка ListView - странное поведение
- Android-разрешение не работает, даже если я его объявил
- JSONParser из учебника androidhive, NoSuchMethodError в DefaultHttpClient
- Попытка реализовать текстовую игру Hangman в Java
- Удалить class = атрибут
Поставщик Settings.System предлагает параметр SCREEN_OFF_TIMEOUT, который может быть тем, что вы ищете.
public class HelloWorld extends Activity { private static final int DELAY = 3000; int defTimeOut = 0; @Override protected void onCreate(Bundle savedInstanceState) { // Be sure to call the super class. super.onCreate(savedInstanceState); // See assets/res/any/layout/hello_world.xml for this // view layout definition, which is being set here as // the content of our screen. setContentView(R.layout.hello_world); defTimeOut = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, DELAY); Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, DELAY); } @Override protected void onDestroy() { super.onDestroy(); Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, defTimeOut); } }
А также не забудьте добавить это разрешение в манифест:
android:name="android.permission.WRITE_SETTINGS"
Выше правильное:
Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, DELAY);
Но также включать разрешение в манифест:
android:name="android.permission.WRITE_SETTINGS"
Вот код, вы можете сделать больше.
long stand = Settings.System.getLong( mContext.getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, -1); long sec = stand / 1000; String time = null; if(stand<0) { //close. } else if( sec >= 60) {//to minute time = String.format(mContext.getString(R.string.minutes), (sec / 60) + ""); } else { time = String.format( mContext.getString(R.string.seconds),sec + ""); }