Android Java: выключить экран

Я делаю приложение, которое включает и выключает экран с помощью датчика приближения. Код приближения завершен, но у меня возникли проблемы с использованием элементов управления на экране.

Я читал, что я должен использовать,

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);

Для этого мне нужно предоставить специальные разрешения, чтобы заставить его работать, но я не понял, как это сделать.

Также я читал об изменении яркости экрана

WindowManager.LayoutParams params = getWindow().getAttributes();
            params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
            params.screenBrightness = 0;
            getWindow().setAttributes(params);

Но таким образом только выключите экран в моем приложении; это не работает, если мое приложение работает в фоновом режиме.

Я также читал об использовании Wakelock (я использую их, чтобы вывести телефон из режима выключенного экрана), но когда

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();

Но когда я это делаю, ничего не происходит.

Есть ли другой способ сделать это?


person Bertrand    schedule 15.02.2012    source источник
comment
См. stackoverflow.com/questions/ 3643907/   -  person Graham Borland    schedule 15.02.2012
comment
Спасибо, но похоже проблема так и не решена   -  person Bertrand    schedule 15.02.2012
comment
@Sit: Как ты это решил?   -  person uniruddh    schedule 10.06.2014


Ответы (1)


Для этого вам необходимо предоставить вашему приложению соответствующие разрешения:

Добавьте <uses-permission android:name="android.permission.DEVICE_POWER" /> в свой манифест внутри тега <manifest>

Если вы хотите, чтобы ваш экран оставался включенным, используйте это, как предложила Дайанна Хакборн в Google Plus: KeepScreenOn

person Thommy    schedule 15.02.2012
comment
Спасибо за ваш ответ. Я поместил это разрешение в манифест, но, поскольку это разрешение уровня 2, нам нужно иметь определенное разрешение (Система), чтобы использовать его. Это то, что я назвал специальными разрешениями, извините, я объяснил это очень плохо. - person Bertrand; 16.02.2012