Pour mon application Android, je ne veux jamais que le téléphone se verrouille ou que le rétro-éclairage s'éteigne
- Écran de force (3 réponses )
Réponses
Trop de publicités?Beaucoup de Réponses Existe Déjà ici ! je suis de répondre à cette question grâce à des Solutions Fiables :
À l'aide de PowerManager.WakeLock
est Pas si Solution Fiable que l'app Nécessite une permission Supplémentaire
<uses-permission android:name="android.permission.WAKE_LOCK" />
Aussi si par hasard il Reste maintenant le Sillage de Verrouillage peut sortir de l'écran sur
donc, je Recommande de ne pas utiliser PowerManager.WakeLock
Solution au lieu de cela, utiliser Toute Solution de la suite de la
D'abord :
on peut utiliser getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
en onCreate()
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Deuxième
on peut utiliser keepScreenOn
1. implementation
l'aide setKeepScreenOn() in java code
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
View v = getLayoutInflater().inflate(R.layout.driver_home, null);// or any View (incase generated programmatically )
v.setKeepScreenOn(true);
setContentView(v);
}
Docs http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(booléen)
2. L'ajout d' keepScreenOn
de xml layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true" >
Docs http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
Note ( Quelques Points Utiles) :
1. il N'est pas question qu' keepScreenOn
doit être utilisé sur Main/Root/Parent View
il peut être utilisé avec n'importe quel child view
fonctionnera Comme même car il fonctionne en Parent view
2. La Seule Chose importe, c'est que View's Visibility must be visible
autres sage, il ne fonctionnera pas !
Utilisez la classe PowerManager.WakeLock afin d'effectuer cette opération. Voir le code suivant:
import android.os.PowerManager;
public class MyActivity extends Activity {
protected PowerManager.WakeLock mWakeLock;
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle icicle) {
setContentView(R.layout.main);
/* This code together with the one in onDestroy()
* will make the screen be always on until this Activity gets destroyed. */
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
this.mWakeLock.acquire();
}
@Override
public void onDestroy() {
this.mWakeLock.release();
super.onDestroy();
}
}
Utilisez l'autorisation suivante dans le fichier manifeste:
<uses-permission android:name="android.permission.WAKE_LOCK" />
J'espère que cela résoudra votre problème ... :)
Ne pas Utiliser la fonction Wake Lock.
Il nécessite une autorisation et d'autres choses et peut causer si vous oubliez de régler en temps et en heure.
Le plus simple est d'utiliser le code ci-dessous lorsque vous souhaitez garder votre écran..
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Un plus pour la réponse si vous souhaitez supprimer ou de mettre fin keep_Screen_on
getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
vous pouvez aussi voir ici..
Et le meilleur moyen et .. l'Aide d' android:keepScreenOn="true"
dans la mise en forme de la racine de votre activité fait la même chose sans code supplémentaire. Mais il restera dans Keep_Scree_on État..
Regardez cette discussion Force Screen On
hackbod a une excellente réponse.