Android Отключить экран - PullRequest
       3

Android Отключить экран

6 голосов
/ 26 августа 2011

Я не могу выключить экран с помощью этого кода. Я использовал PowerManager и wl.release() метод, но он не работает. Может кто-нибудь показать мне пример?

  PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
   wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen"); 

Это часть моей функции:

  stateString = "nextone";
  if(stateString=="nextone"){        
  wl.release();
   }

Я также добавил разрешение в манифест, но без результата.

Ответы [ 5 ]

2 голосов
/ 31 августа 2011

Я нашел ответ здесь о переполнении стека: Отключить экран на Android

Скопировано оттуда:

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

Я попробовал это, и кажетсяна работу.

0 голосов
/ 29 октября 2013
try 
{
    Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000*15);
} 
catch (NumberFormatException e) 
{
    Log.e("aa", "could not persist screen timeout setting", e);
}

Как обнаружить переключение между пользователем и устройством

0 голосов
/ 02 июля 2012

Вы можете использовать

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
0 голосов
/ 26 августа 2011

, пожалуйста, проверьте эту ссылку, прежде чем приступить к блокировке.если это не решит вашу проблему, вы можете продолжить с помощью wake lock.

Force Screen On

0 голосов
/ 26 августа 2011

Если вы не используете разрешение, программа будет аварийно завершать работу с SecurityException при попытке блокировки, так что это не проблема.Правильный метод: (получает WakeLock при запуске, отдает его, когда приложение теряет фокус (onPause)

//declared globally so both functions can access this
public PowerManager.WakeLock wl;

///////////onCreate
//stop phone from sleeping
PowerManager powman = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = powman.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "NameOfLock");
wl.acquire();

///////////onPause
wl.release();

//////////for completion's sake, onResume
if(!wl.isHeld()){
    wl.acquire();
}

Однако ваша проблема на самом деле в этой проверке

if(stateString=="nextone")

Это должно быть if(stateString.equals("nextone"))

...