2015-02-26 1 views
0

Je suis en train d'écrire une application Android, et j'aimerais que mon écran devienne sombre après l'acquisition d'un verrou de réveil. Cependant, mon écran ne faiblit pas. Cela continue (ne plante pas) comme si rien ne s'était passé. Je sais que le verrou de réveil EST mis en place à cause d'un code de test non montré ici. Ce qui suit est mon code:Wake Lock ne noircit pas l'écran

//Relevant declarations: 
    PowerManager.WakeLock w1; 
    PowerManager pm; 

public void onClick(View view) { 
pm = (PowerManager) getSystemService((Context.POWER_SERVICE)); 
w1 = pm.newWakeLock((PowerManager.SCREEN_DIM_WAKE_LOCK), "My Tag"); 
w1.acquire(); //DOES NOT DIM 
} 

public void onShake() { 
if (w1.isHeld()) 
{ 
w1.release(); 
} 

//Manifest: 
    <uses-permission android:name="android.permission.WAKE_LOCK"/> 

Des idées? Merci.

Répondre

0

Ajouter la permission suivante dans votre manifeste:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
+0

Je l'ai fait. J'ai oublié de le mentionner. – s123

3
w1.acquire(); //DOES NOT DIM 

Si vous attendez à immédiatement dim, ce n'est pas comment cela fonctionne. SCREEN_DIM_WAKE_LOCK signifie "changer la luminosité actuelle pour diminuer". Cela signifie "nous avons besoin que l'écran soit au moins dim". Toute autre chose, comme l'utilisation de l'appareil, peut entraîner une luminosité maximale de l'écran.

+0

J'ai compris, merci. Juste dû être patient et attendre un certain temps avant de finalement devenir faible. Secouant il a libéré le verrou de sillage, et a immédiatement illuminé l'écran encore. – s123