2011-08-25 14 views
5

Non riesco a spegnere lo schermo utilizzando questo codice. Ho usato il metodo PowerManager e wl.release(), ma non funziona. Qualcuno può mostrarmi un esempio?Spegni schermo Android Off

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

questo fa parte della mia funzione:

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

Ho anche aggiunto il permesso nel manifesto, ma senza risultato.

+1

Bene, il vostro confronto con stateString sarà mai vero. Per confrontare le stringhe in java dovresti usare 'stateString.equals (" nextone ")'. – Eloff

risposta

0

Se non si utilizza un'autorizzazione, il programma si bloccherà con un SecurityException quando tenta di bloccare, quindi non è questo il problema. Il metodo corretto è: (ottiene Wakelock su start, dà in su quando l'applicazione perde lo stato attivo (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(); 
} 

Tuttavia, il problema è in realtà in questo controllo

if(stateString=="nextone")

Questo deve essere if(stateString.equals("nextone"))

0

si prega di controllare questo collegamento prima di procedere con la sveglia, se non risolve il tuo problema allora puoi procedere con il wake lock.

Force Screen On

2

ho trovato la risposta qui su Stack Overflow: Turn off screen on Android

Copiato da lì:

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

Ho provato questo fuori e sembra funzionare.

+0

questo risolve il problema: getWindow(). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); – ademar111190

+0

questo codice funziona bene per spegnere lo schermo, ma come riaccenderlo? – astuter

+0

Impostazione parametri schermoLa luminosità a un valore compreso tra 0 e 1 offre una luminosità compresa tra 0% e 100%. Impostandolo su un valore negativo si ottiene la luminosità automatica. Ho dimenticato dove ho visto la prima volta, ma la uso sempre. – Gdalya

0

È possibile utilizzare

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);