Nie wyłączaj ekranu

Niektóre aplikacje, takie jak gry czy aplikacje do filmów, wymagają włączonego ekranu. Niektóre interfejsy API Androida automatycznie utrzymują ekran włączony. W innych przypadkach możesz ustawić flagę, aby ręcznie włączyć tryb wyświetlania.

Ręczne pozostawianie ekranu włączonego

Aby utrzymać ekran urządzenia włączony, ustaw w swojej aktywności flagę FLAG_KEEP_SCREEN_ON. Ten parametr może być ustawiany tylko w aktywności, nigdy w usłudze ani innym komponencie aplikacji. Może to obejmować np. te funkcje:

Kotlin

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
}

Java

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  }
}

Innym sposobem na utrzymanie ekranu w stanie włączonym jest ustawienie atrybutu android:keepScreenOn w pliku XML układu aplikacji:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>

Użycie android:keepScreenOn="true" jest równoznaczne z użyciem FLAG_KEEP_SCREEN_ON. Możesz użyć dowolnego podejścia, które najlepiej pasuje do Twojej aplikacji. Zaletą ustawiania flagi w ramach aktywności jest to, że możesz ją później wyczyścić programowo, a tym samym wyłączyć ekran.

Jeśli aplikacja z flagą FLAG_KEEP_SCREEN_ON przechodzi do działania w tle, system pozwala na normalne wyłączenie ekranu. W tym przypadku nie musisz wyraźnie usuwać flagi. Jeśli aplikacja nie musi już utrzymywać ekranu włączonego, usuń flagę, wywołując funkcję clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).

Tryb nieaktywny na telewizorze

Na urządzeniach telewizyjnych użyj FLAG_KEEP_SCREEN_ON, aby urządzenie nie przechodziło w tryb nieaktywny podczas aktywnego odtwarzania filmu. Jeśli aktywność na pierwszym planie nie jest ustawiona na FLAG_KEEP_SCREEN_ON, po pewnym czasie bezczynności urządzenie automatycznie przejdzie w tryb Ambient.

Zobacz również