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

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

5 голосов
/ 15 февраля 2012

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

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

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();

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

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

1 Ответ

1 голос
/ 15 февраля 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...