Trvá dialógové okno hlasitosti systému Android príliš dlho, kým zmizne? Tu je dôvod.

Všimli ste si, že dialógu hlasitosti na vašom Androide trvá 20 sekúnd, kým zmizne, pokiaľ neklepnete na obrazovku manuálne? Tu je dôvod, prečo sa to deje.

Všimli ste si, že dialógové okno hlasitosti, ktoré sa zobrazí po stlačení tlačidiel hlasitosti, trochu trvá tiež dlho zmizne sám? Keď ste prvýkrát dostali svoj telefón s Androidom, dialógové okno hlasitosti sa po niekoľkých sekundách bez vášho zásahu automaticky vypne. Potom, niekedy v priebehu niekoľkých posledných dní, týždňov alebo mesiacov, by trvalo dlho, kým by ste zmizli, pokiaľ by ste neklepli na obrazovku. Ak máte tento problém a rozhorčuje vás, nie ste sami.

V tomto článku vám vysvetlíme, čo sa deje a prečo sa to deje, aby ste mohli buď problém vyriešiť sami, alebo poslať tento článok vývojárovi, aby ho mohol opraviť. Najprv presne popíšme, o aký problém ide, aby bolo jasné, že máme na mysli ten istý problém, ktorému čelíte.

Problém

Stlačením tlačidla hlasitosti na smartfóne alebo tablete s Androidom zmeníte hlasitosť, ale hlasitosť dialógu, ktorý sa objaví, trvá dlho, kým sám zmizne, pokiaľ ho nespustíte klepnutím na obrazovku zmiznúť. Ako dlho zostane dialógové okno hlasitosti samovoľne zapnuté? Presne 20 sekúnd.

Kredity: /u/ConeCandy

Populárne vlákno na Reddit /r/GooglePixel subreddit pripomenulo veľa používateľov, že čelia tomuto problému. Nie všetci však mali tento problém. Niektorí používatelia uviedli, že ich dialógové okná hlasitosti zostali na obrazovke iba 3 sekundy, čo je normálne správanie. Čo teda spôsobilo tento problém? Pre väčšinu používateľov v tomto vlákne sa ukázalo, že dôvodom bola aplikácia s názvom Signal Spy - hoci niektorí používatelia v tomto vlákne uviedli, že toto správanie spôsobujú aj iné aplikácie.

Signal Spy - Monitor Signal StVývojár: Novvia

Cena: zadarmo.

3.9.

Stiahnuť ▼

Signal Spy je aplikácia, ktorá je populárna medzi predplatiteľmi služby Project Fi spoločnosti Google. Používatelia Project Fi túto aplikáciu milujú, pretože podporuje analýzu vášho aktuálneho sieťového pripojenia a podporuje automatické prepínanie medzi Sprint a T-Mobile. Najlepšia časť? Na prepínanie medzi sieťami nepotrebuje root prístup. Signal Spy používa službu prístupnosti (službu, ktorá využíva rozhrania Android Accessibility API, ktoré sa bežne používajú na pomoc používateľom so zdravotným postihnutím, ale používajú sa aj v stovkách bežných aplikácií) na automatické prepínanie medzi operátormi zadaním kódu vytáčania skratky.

Schopnosť Signal Spy automaticky prepínať medzi operátormi na Project Fi je neuveriteľne užitočná, ale je to aj dôvod, prečo sa v systéme Android objavuje problém s dialógom hlasitosti. Jediná spoločná vlastnosť medzi Signal Spy a ostatnými aplikáciami, ako sú LastPass, Fingerprint Gestures, Zoho Vault, Amazon Assistant a ďalšie aplikácie, ktoré spôsobujú tento problém, je, že používať službu dostupnosti. Jedným zo spôsobov, ako tento problém vyriešiť, je prejsť do časti Nastavenia --> Zjednodušenie ovládania a vypnúť jednotlivé služby zjednodušenia ovládania. Prečo teda tento problém spôsobujú iba služby dostupnosti niektorých aplikácií? Tasker, napríklad tento problém nerieši a ani náš vlastný Navigačné gestá aplikácie. Vy a mnohí ďalší na Google Issue Tracker môže si myslieť, že je to chyba, ale v skutočnosti to tak nie je... je to úplne dizajnovo.

Vysvetlenie

Ako sme zistili počas vývoja aplikácie Navigačné gestá, problém nastáva, keď má služba dostupnosti accessibilityFeedbackType nastavený na čokoľvek iné ako FEEDBACK_GENERIC. Keď nastavíme našu službu dostupnosti na používanie FEEDBACK_HAPTIC, dialógové okno hlasitosti zostane na obrazovke 20 sekúnd. Keď ho nastavíme na FEEDBACK_GENERIC, dialógové okno hlasitosti zostane na obrazovke 3 sekundy.

Dôvodom, prečo k tomu dochádza, sú dve metódy v implementácia dialógu hlasitosti v AOSP. Prvá metóda s názvom computeFeedbackEnabled skontroluje, či existujú nejaké povolené služby dostupnosti, ktoré nie sú „všeobecné“. Ak je hodnota true, boolovská hodnota mFeedbackEnabled je nastavená na hodnotu true. V druhej metóde, computeTimeoutH, ak mFeedbackEnabled vráti hodnotu true, potom je časový limit dialógového okna hlasitosti nastavený na 20 sekúnd, v opačnom prípade je nastavený na 3 sekundy.

Títometódy boli pridané vo vydaní Android 6.0 Marshmallow, a preto tento problém s dialógovým oknom ovplyvňuje všetky vydania systému Android od verzie Android Marshmallow vrátane Android Nougat, Android Oreo a Android Pie. Nie sme si úplne istí prečo tieto metódy boli pridané, pretože popisy odovzdania neboli jasné. Ak by som mal riskovať hádanie, prečo toto správanie existuje, povedal by som, že je to s cieľom pomôcť používateľom s istými postihnutí zvládajú dialóg hlasitosti pomocou hlasových alebo iných vstupov, pretože predvolený 3-sekundový časový limit je príliš krátky pre nich. Ak Android zistí, že používateľ používa službu dostupnosti určitého typu, automaticky predĺži dobu trvania dialógového okna hlasitosti, aby mal používateľ väčšiu šancu na interakciu s ním. Bez ohľadu na to je jasné, že tento problém je nie je chyba ale je skôr úplne podľa návrhu. Bohužiaľ to znamená, že neexistuje žiadna „oprava“ problému okrem toho, že by sme presvedčili Google, aby ho zmenil toto rozhodnutie alebo presvedčiť vývojárov aplikácií, aby vo svojej dostupnosti nepoužívali nevšeobecné typy spätnej väzby Služby.

Vývojári Signal Spy už potvrdili, že problém vyriešili vo svojom ďalšom beta vydaní, takže ak sa s problémom stretnete a chcete zistiť, či je vyriešený, by mali vývojárov aplikácií nasmerovať na tento článok, aby si boli vedomí problému (mnohí o tom nevedia.) Ak budúca verzia Androidu zmení toto správanie, umožníme vám všetkým vedieť. Teraz ste si aspoň vedomí tohto problému a toho, čo ho spôsobuje, takže zistíte, ktoré aplikácie vám tento problém spôsobujú.