Alcune app, come i giochi o le app di film, devono mantenere lo schermo acceso. Alcune API Android mantengono automaticamente lo schermo acceso. In altri casi, puoi impostare un flag per mantenere lo schermo acceso manualmente.
Mantieni lo schermo attivo manualmente
Per mantenere attivo lo schermo del dispositivo, imposta il flag FLAG_KEEP_SCREEN_ON nella tua attività. Questo flag può essere impostato solo in un'attività, mai in un servizio o in un altro componente dell'app. Ad esempio:
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
Un altro modo per mantenere lo schermo attivo è impostare l'attributo android:keepScreenOn nel file XML di layout dell'applicazione:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... </RelativeLayout>
L'utilizzo di android:keepScreenOn="true" equivale all'utilizzo di FLAG_KEEP_SCREEN_ON.
Puoi utilizzare l'approccio più adatto alla tua app. Il vantaggio di impostare
il flag in modo programmatico nella tua attività è che ti offre la possibilità di
cancellarlo in un secondo momento, consentendo così lo spegnimento dello schermo.
Se un'app con il flag FLAG_KEEP_SCREEN_ON passa in background, il sistema consente allo schermo di spegnersi normalmente. In questo caso, non è necessario cancellare esplicitamente il flag. Se la tua app non ha più bisogno di tenere lo schermo acceso, devi cancellare il flag chiamando clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).
Modalità Ambient per la TV
Sui dispositivi TV, utilizza FLAG_KEEP_SCREEN_ON per impedire al dispositivo di passare alla modalità Ambient durante la riproduzione attiva di video. Se l'attività in primo piano
non imposta FLAG_KEEP_SCREEN_ON, il dispositivo entra automaticamente in modalità Ambient
dopo un periodo di inattività.