Celoobrazovková / imerzivní aplikace v Android Studiu – DEV Community
Na stránku začalo chodit podezřele velké množství lidí s dotazem, jak povolit režim celé obrazovky v MIUI 14 na telefonu Xiaomi (Redmi).
Na chytrých telefonech založených na operačním systému Android existují dva provozní režimy aplikací: v okně a na celé obrazovce.
Je zvláštní, že režim okna je výchozí pro velkou většinu programů.
To znamená, že když si stáhnete a nainstalujete program z obchodu, je již nakonfigurován pro spuštění v režimu okna.
Na přání majitele smartphonu Xiaomi je však v MIUI 14 možné aplikaci vynutit do režimu celé obrazovky.
Než ale ukážu, kde je nyní v MIUI 14 skryto nastavení výstupu na celou obrazovku, řeknu trochu o tom, jak se liší od okna.
Obsah:
- Jaký je rozdíl mezi aplikací na celé obrazovce a aplikací v okně?
- Jak povolit režim celé obrazovky v MIUI 14
- Které programy podporují režim celé obrazovky v MIUI 14
Jaký je rozdíl mezi aplikací přes celou obrazovku a aplikací v okně na Xiaomi?

Hlavním rozdílem, který je pro uživatele patrný, je to, že v režimu v okně, zatímco program běží, stále vidíte stavový řádek, který se nachází v horní části obrazovky, a navigační tlačítka, pokud máte tlačítko povolen způsob používání telefonu.
Stavový řádek zobrazuje sílu signálu mobilní sítě, čas, zda ostatní bezdrátová rozhraní fungují, jako je Bluetooth, Wi-Fi, NFC a další informace.
To je výhodné, pokud používáte prohlížeč, messenger nebo navigátor. Další informace nezasahují a někdy pomáhají při používání programu.
Pokud ale chcete sledovat video nebo spustit hru tak, aby bylo vidět pouze herní rozhraní, bez systémových ikon a rušivých informací, je nutné program spustit na celou obrazovku.
Nuance je v tom, že ne všechny programy se spouštějí s tímto nastavením, to platí i pro hry.
Například populární Mortal Combat běží ve výchozím nastavení v režimu okna, jako mnoho jiných her.
Je tu ale ještě jedna vlastnost práce na celé obrazovce, která by se rozhodně měla brát v úvahu – priorita úkolů.
Když aplikace běží na celou obrazovku, její priorita pro využití výkonu procesoru a video čipu se automaticky zvýší. V některých případech to poskytuje lepší výkon, což je zvláště důležité v moderních hrách se složitou grafikou.
Právě u her doporučuji zkontrolovat, zda fungují na celou obrazovku.
Nyní, když jsme se zabývali hlavními funkcemi, přejděme k tomu, jak zjistit, zda program běží na celou obrazovku, a jak vynutit povolení tohoto režimu.
Jak povolit režim celé obrazovky na Xiaomi v MIUI 14
V dřívějších verzích prostředí MIUI bylo nastavení v sekci „Obrazovka“, ale v MIUI 14 už tam není.
Nyní musíte tento režim zobrazení zkontrolovat ve vlastnostech aplikace, kterou potřebujete.
Chcete-li to provést, v hlavní nabídce nastavení najděte položku „Aplikace“.

Dále “Všechny aplikace”.

V seznamu nainstalovaných programů najděte ten, pro který chcete povolit výstup na celou obrazovku. Například používám hru „2048“.

Přejděte na obrazovce dolů do části „Pokročilá nastavení“, kde vidíme přepínač „Režim celé obrazovky“. Jak vidíte, pro tuto hru je to ve výchozím nastavení zakázáno, pojďme to povolit.

Nyní spustíme program a zkontrolujeme, zda se změnil provozní režim.
Musíte zakázat výstup na celou obrazovku v MIUI 14 ve stejné sekci, kde jste jej zapnuli, neexistuje žádná jiná metoda.
Které programy podporují režim celé obrazovky v MIUI 14

Upozorňujeme, že ne všechny programy podporují tento režim zobrazení. Pokud například přejdeme do vlastností „2GIS“, tento přepínač zde nenajdeme. To znamená, že program bude fungovat pouze tak, jak určil vývojář, z naší strany to nebudeme moci nijak ovlivnit.
Není možné zjistit podporu předem; žádná z populárních tříd aplikací není vytvořena pomocí dříve známého způsobu ovládání:
- Игры
- Video aplikace
- Editory fotografií a videí
- Prohlížeče
- Sociální sítě
Jakýkoli program z jakékoli třídy může nebo nemusí fungovat na celé obrazovce.
Relevantní informace:
- Obnovovací frekvence obrazovky: co to je a jak to souvisí s FPS na telefonech Xiaomi (Redmi) Android?
- Nové funkce MIUI 12: uživatelské rozhraní, animace a nová úroveň zabezpečení a ochrany soukromí. 42 modelů Xiaomi obdrží MIUI 12 ve třech vlnách – seznam a data vydání
- Seznam funkcí MIUI 13.5 – nové funkce přidané ve verzi 22.5.16.
- Jak zobrazit skryté aplikace na telefonu Android. Hledání skrytých aplikací
- Kdy vyjde aktualizace firmwaru z MIUI 12.5 pro Xiaomi (Redmi)?

Jako každý začátečník jsem se začal orientovat v dokumentaci k Android Studiu, která je velmi užitečná. Nějak jsem se dostal do potřeby vývoje celoobrazovkové aplikace. Proto jsem se rozhodl velmi explicitně a krok za krokem vysvětlit, co k jejímu získání budete potřebovat.
Normální aplikace

Aplikace na celou obrazovku

V podstatě je to, co musíme udělat, vysvětleno v předchozí dokumentaci k Androidu, kterou jsem zmínil, takže se na ni podívejme:
override fun onWindowFocusChanged(hasFocus: Boolean) super.onWindowFocusChanged(hasFocus) if (hasFocus) hideSystemUI() > private fun hideSystemUI() window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) > private fun showSystemUI() window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) > Vstupte do režimu celé obrazovky
Ukončete režim celé obrazovky
Takže, co máme, je:
· při změně fokusu ve Windows detekuje pokaždé, když se aktivuje fokus okna, můžete znovu skrýt systémové panely voláním hideSystemUI
· skrýtSystemUI Změňte systemUiVisibility tak, aby povolil příznaky na celou obrazovku.
· zobrazitSystemUI zobrazit systémové panely Nejjednodušší způsob je přidat tento kód ke každé aktivitě, kterou chcete zobrazit v režimu celé obrazovky, ale lepším způsobem je vytvořit si vlastní aktivitu, která bude rodičem všech ostatních. Naše vlastní aktivita musí být otevřenou třídou, abychom z ní mohli později rozšiřovat, a samozřejmě musí rozšiřovat AppCompatActivity.
open class MasterActivity : AppCompatActivity() companion object const val GLOBAL: Int = (View.SYSTEM_UI_FLAG_IMMERSIVE or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) > Vstupte do režimu celé obrazovky
Ukončete režim celé obrazovky
Pro optimalizaci řádků kódu jsem se rozhodl vytvořit konstantní hodnotu s vlajkami, které budeme potřebovat. Pak na onCreate funkci, kterou nazýváme fullScreenCall, kde je logika pro režim celé obrazovky
override fun onCreate(savedInstanceState: Bundle?) super.onCreate(savedInstanceState) fullScreenCall() > Vstupte do režimu celé obrazovky
Ukončete režim celé obrazovky
Jedno onResume měl by to taky volat pro lepší UX.
override fun onResume() super.onResume() fullScreenCall() > Vstupte do režimu celé obrazovky
Ukončete režim celé obrazovky
hovor na celou obrazovku je funkce, kde nastavujeme režim celé obrazovky podle verze SDK zařízení. Pokud je mezi 11 a 19, počítač nastaví GONE na systemUiVisibility. Na druhou stranu, u verzí po 19 počítač pouze nastaví příznaky celé obrazovky.
open fun fullScreenCall() if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT 19) this.window.decorView.systemUiVisibility = View.GONE > else if (Build.VERSION.SDK_INT >= 19) decorView.systemUiVisibility = GLOBAL > > Vstupte do režimu celé obrazovky
Ukončete režim celé obrazovky
Jak jsem vysvětlil v kódu uvedeném v dokumentaci k systému Android, onWindowFocusChanged detekuje změnu fokusu a znovu nastaví příznaky pro režim obrazovky
override fun onWindowFocusChanged(hasFocus: Boolean) super.onWindowFocusChanged(hasFocus) window.decorView.systemUiVisibility = GLOBAL > Vstupte do režimu celé obrazovky
Ukončete režim celé obrazovky
Pak už jen musíme rozšířit naši MasterActivity takto:
class AnotherActivity: MasterActivity()