Wie lasse ich den Bildschirm in meiner App eingeschaltet? [duplicate]

Lesezeit: 5 Minuten

Bei meiner Android-App möchte ich nie, dass das Telefon gesperrt oder die Hintergrundbeleuchtung ausgeschaltet wird

  • In diesem Beitrag gibt es eine bessere Lösung: stackoverflow.com/questions/4807634/disable-keep-screen-on

    – Derzu

    25. Februar 2012 um 5:01 Uhr

  • stackoverflow.com/a/16015358/1318946

    – Pratik Butani

    11. September 2013 um 13:32 Uhr

  • Diese doppelte Frage hat mehr Aufrufe erhalten, und ich denke, das liegt daran, dass eine ältere Frage verwendet wurde Gewalt Aber hier behalten

    – Benutzer25

    24. März 2018 um 23:06 Uhr


Fügen Sie eine Codezeile nach setContentView() in onCreate() hinzu

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_flag);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

  • Diese Antwort gilt pro Aktivität und ist viel besser geeignet, wenn Sie nicht möchten, dass die App die CPU weckt, weil Sie Wake Locks nicht richtig verwaltet haben.

    – Ewoks

    19. Juni 2013 um 13:19 Uhr

  • Wie schalten Sie dieses Flag aus?

    – AlikElzin-kilaka

    29. Dezember 2013 um 13:03 Uhr

  • @kilaka schalte es mit der Linie aus getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).

    – anthonycr

    4. Januar 2014 um 0:48 Uhr

  • @anthonycr Ich nehme an, es wird automatisch zurückgesetzt, wenn die Aktivität zerstört wird, oder?

    – Android-Entwickler

    19. Oktober 2016 um 20:36 Uhr

  • @androiddeveloper Ja, es wird automatisch zurückgesetzt. Siehe Hinweis im Abschnitt „Bildschirm eingeschaltet lassen“: developer.android.com/training/scheduling/wakelock.html

    – Andy

    28. Februar 2017 um 21:59 Uhr


Wie lasse ich den Bildschirm in meiner App eingeschaltet duplicate
Tarsem Singh

Hier gibt es bereits viele Antworten! Ich beantworte diese Frage mit zusätzlichen und zuverlässigen Lösungen:

Verwenden PowerManager.WakeLock ist keine so zuverlässige Lösung, da die App zusätzliche Berechtigungen benötigt.

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

Auch wenn es versehentlich die Wecksperre hält, kann es den Bildschirm eingeschaltet lassen.

Daher empfehle ich, die nicht zu verwenden PowerManager.WakeLock Lösung. Verwenden Sie stattdessen eine der folgenden Lösungen:

Zuerst:

Wir können benutzen getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); in onCreate()

@Override
        protected void onCreate(Bundle icicle) {
            super.onCreate(icicle);    
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        }

Sekunde:

wir können benutzen keepScreenOn

1. Umsetzung mit setKeepScreenOn() im 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);
       }

Dokumente http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)

2. Hinzufügen keepScreenOn zum 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" >

Dokumente http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn

Anmerkungen (einige nützliche Punkte):

  1. Das ist egal keepScreenOn sollte in einer Haupt-/Stamm-/Elternansicht verwendet werden. Es kann mit jeder untergeordneten Ansicht verwendet werden und funktioniert genauso wie in einer übergeordneten Ansicht.
  2. Wichtig ist nur, dass die Sichtbarkeit des Views sichtbar sein muss. Sonst geht es nicht!

  • Ja, es sollte die richtige Antwort sein! Ich habe nach einem Beispiel für eine Implementierung von “keepScreeOn” gesucht (was ich für den besten Weg hielt), und dies ist die einzige Antwort, die es gut zeigt!

    – Sergio Carneiro

    23. Januar 2014 um 19:29 Uhr

  • keine Genehmigung erforderlich.

    – mhdjazmati

    11. Januar 2017 um 14:10 Uhr


  • v.setKeepScreenOn(true); Funktioniert wunderbar auf M SDK-Telefonen, habe Ls nicht überprüft

    – CodeToLife

    12. Februar 2017 um 16:05 Uhr


  • Gute Erklärung

    – jyomin

    17. August 2017 um 7:19 Uhr

  • Für die Sekunde Lösung, wir machen keine Schritte 1 und 2. Nur mit Schritt 2 hat mir gereicht.

    – Ban-Geoengineering

    1. Juli 2020 um 10:49 Uhr


Wie lasse ich den Bildschirm in meiner App eingeschaltet duplicate
Dinesh Sharma

Verwenden PowerManager.WakeLock Klasse, um dies durchzuführen. Siehe folgenden Code:

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();
    }
}

Verwenden Sie die folgende Berechtigung in der Manifestdatei:

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

Hoffe das löst dein Problem… 🙂

  • Sollte das nicht drin sein onResuem und onPause Die App lässt also den Bildschirm nicht eingeschaltet, wenn der Benutzer die Home-Taste drückt?

    – Li_W

    23. September 2011 um 3:29 Uhr

  • Diese Methode ist veraltet, Sie können hier auf die Dokumentation verweisen: developer.android.com/reference/android/os/…

    – Chris.Zou

    16. November 2013 um 16:37 Uhr

  • Bitte entfernen Sie diese Antwort, die veraltet ist. Danke.

    – Zwischenspiel

    12. Januar 2015 um 14:50 Uhr

  • BITTE KEINE WAKE LOCK VERWENDEN.

    – Jonathon Reinhart

    4. August 2015 um 2:06 Uhr

  • @FedericoPonzi Fall 1: Wenn Sie nur SCREEN_DIM_WAKE_LOCK brauchen, nicht SCREEN_BRIGHT_WAKE_LOCK. Fall 2: Wenn Sie eine Bildschirmwachsperre benötigen, während die App eines anderen Entwicklers im Vordergrund ausgeführt wird, können Sie das Fenster dieser App nicht direkt abrufen.

    – Naetmul

    4. Mai 2017 um 6:13 Uhr

1645916591 625 Wie lasse ich den Bildschirm in meiner App eingeschaltet duplicate
Zar E. Ahmer

Verwenden Sie Wakelock nicht.

It requires permission and other stuff and may cause error if you forget to set it in right time.

Am einfachsten ist es, den folgenden Code zu verwenden, wenn Sie Ihren Bildschirm eingeschaltet lassen möchten.

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

Eine Ergänzung zur Antwort, wenn Sie keep_Screen_on entfernen oder beenden möchten

getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

kann man auch sehen Hier..

Und the best and easiest way .. Verwenden android:keepScreenOn="true" im Layoutstamm Ihrer Aktivität macht dasselbe ohne zusätzlichen Code. Aber es bleibt im Keep_Scree_on State..

Es kann je nach Bedarf variieren Siehe hier

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

getWindow ist eine für Aktivitäten definierte Methode, bei der Sie keine finden müssen View Erste.

  • Identisch mit der Lösung von @hackbod: stackoverflow.com/a/2134602/435605

    – AlikElzin-kilaka

    29. Dezember 2013 um 13:16 Uhr

Hinzufügen android:keepScreenOn="true" im XML der Aktivität(en), die Sie auf dem Bildschirm behalten möchten, ist die beste Option. Fügen Sie diese Zeile zum Hauptlayout der Aktivität(en) hinzu.

Etwas wie das

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:keepScreenOn="true">

...

</LinearLayout>

  • Identisch mit der Lösung von @hackbod: stackoverflow.com/a/2134602/435605

    – AlikElzin-kilaka

    29. Dezember 2013 um 13:16 Uhr

1645916591 632 Wie lasse ich den Bildschirm in meiner App eingeschaltet duplicate
Gottschmied

Sie können einfach verwenden setKeepScreenOn() aus der View-Klasse.

869220cookie-checkWie lasse ich den Bildschirm in meiner App eingeschaltet? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy