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>

Ако искате да запазите екрана си включен, използвайте това, както е предложено от Dianne Hackborn в Google Plus: KeepScreenOn

person Thommy    schedule 15.02.2012
comment
Благодаря Ви за отговора. Поставих това разрешение в манифеста, но тъй като това е разрешение от ниво 2, трябва да имаме конкретно разрешение (система), за да го използваме. Това е, което нарекох специални разрешения, съжалявам, че го обясних по много лош начин. - person Bertrand; 16.02.2012