Wie erzwinge ich, dass der Bildschirm aktiv bleibt und nicht ausgeschaltet wird, während meine App ausgeführt wird?
Wie erzwinge ich, dass der Bildschirm aktiv bleibt und nicht ausgeschaltet wird, während meine App ausgeführt wird?
Antworten:
Dies erfordert, dass Sie Ihrer App eine zusätzliche Berechtigung erteilen. Es ist sehr einfach, Fehler einzuführen, bei denen Sie versehentlich die Wecksperre gedrückt halten und den Bildschirm eingeschaltet lassen.
Es ist weitaus besser, die Fensterflagge zu verwenden FLAG_KEEP_SCREEN_ON, die Sie im Fenster Ihrer Aktivität onCreate()wie folgt aktivieren können :
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Dadurch wird sichergestellt, dass der Bildschirm eingeschaltet bleibt, während sich Ihr Fenster im Vordergrund befindet, und nur, wenn es sich im Vordergrund befindet. Dies vereinfacht diesen allgemeinen Anwendungsfall erheblich und eliminiert jegliches Jonglieren, das Sie beim Übergang Ihrer App zwischen Status ausführen müssen.
Diese Frage hat bereits eine großartige Antwort von @hackbod!
Ich beantworte diese Frage mit zwei zusätzlichen Lösungen!
Bestehende Lösung:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Zusätzliche Lösungen:
wir können benutzen keepScreenOn
1. implementation mitsetKeepScreenOn() in java code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// or any View (in case generated programmatically )
View v = getLayoutInflater().inflate(R.layout.driver_home, null);
v.setKeepScreenOn(true);
setContentView(v);
}
Dokumente http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. Hinzufügen keepScreenOnzuxml 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" >
Dokumente http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
Hinweis (einige nützliche Punkte):
1. Es spielt keine Rolle, dass keepScreenOnes verwendet werden soll. Main/Root/Parent View Es kann mit jedem child viewWillen verwendet werden, der genauso funktioniert wie inParent view
2. Die einzige Sache ist, dass es View's Visibility must be visiblesonst nicht funktioniert!
v.setKeepScreenOn(true);scheint der einzige Weg zu sein, dies für ein Vollbild-Dialogfragment zu tun
Eine andere Lösung ist das Hinzufügen android:keepScreenOn="true"( Dokumentation) ) , um die Ansichten, die den Bildschirm auf halten müssen.
Ermöglicht eine etwas genauere Steuerung, welche Ansichten aktiviert bleiben und welche nicht. Auf diese Weise können Sie sogar auf eine Einstellung aus einer Ressourcendatei verweisen.