Všimli jste si, že dialogu hlasitosti na vašem Androidu trvá 20 sekund, než zmizí, pokud neklepnete na obrazovku ručně? Zde je důvod, proč se to děje.
Všimli jste si, že dialogové okno hlasitosti, které se zobrazí po stisknutí tlačítek hlasitosti, trochu trvá také dlouho zmizet sám? Když jste poprvé dostali svůj telefon Android, dialogové okno hlasitosti se bez vašeho zásahu po několika sekundách automaticky zavře. Pak, někdy v posledních několika dnech, týdnech nebo měsících, by trvalo dlouho, než by to zmizelo, pokud byste neklepli na obrazovku. Pokud se s tímto problémem potýkáte a rozčiluje vás, nejste sami.
V tomto článku vysvětlíme, co se děje a proč se to děje, abyste mohli buď problém vyřešit sami, nebo tento článek poslat vývojáři, aby jej mohl opravit. Nejprve popišme, o jaký problém se přesně jedná, aby bylo jasné, že máme na mysli stejný problém, kterému čelíte.
Problém
Stisknutím tlačítka hlasitosti na smartphonu nebo tabletu Android změníte hlasitost, ale hlasitost Dialog, který se objeví, trvá dlouho, než sám zmizí, pokud jej nezavřete klepnutím na obrazovku zmizet. Jak dlouho zůstane dialogové okno hlasitosti samo o sobě aktivní? Přesně 20 sekund.
Kredity: /u/ConeCandy
Populární vlákno na Redditu /r/GooglePixel subreddit vyvolalo mnoho uživatelů, kteří se potýkali s tímto problémem. Ne všichni však měli tento problém. Někteří uživatelé uvedli, že jejich dialogy hlasitosti zůstaly na obrazovce pouze 3 sekundy, což je normální chování. Co tedy způsobilo tento problém? U většiny uživatelů v tomto vláknu se ukázalo, že důvodem byla aplikace s názvem Signal Spy – ačkoli někteří uživatelé v tomto vláknu uvedli, že toto chování způsobují i jiné aplikace.
Cena: Zdarma.
3.9.
Signal Spy je aplikace, která je oblíbená mezi předplatiteli služby Project Fi společnosti Google. Uživatelé Project Fi tuto aplikaci milují, protože podporuje analýzu vaší aktuální síťové konektivity a podporuje automatické přepínání mezi Sprint a T-Mobile. Nejlepší část? K přepínání mezi sítěmi nepotřebuje přístup root. Signal Spy používá službu usnadnění přístupu (službu, která používá rozhraní API pro usnadnění přístupu systému Android, která se běžně používají pro pomoc uživatelům se zdravotním postižením, ale používají se také ve stovkách běžných aplikací) k automatickému přepínání mezi operátory zadáním kódu číselníku zkratky.
Schopnost Signal Spy automaticky přepínat mezi operátory na Project Fi je neuvěřitelně užitečná, ale je to také důvod, proč dochází k problému s dialogem hlasitosti Androidu. Jedinou společnou věcí mezi Signal Spy a ostatními aplikacemi, jako je LastPass, Fingerprint Gestures, Zoho Vault, Amazon Assistant a další aplikace, které způsobují tento problém, je to, že používat službu usnadnění. Jedním ze způsobů, jak tento problém vyřešit, je přejít na Nastavení --> Usnadnění a vypnout jednotlivé služby usnadnění. Proč tedy tento problém způsobují pouze služby usnadnění přístupu některých aplikací? Taskernapříklad, tento problém neřeší a ani ten náš Navigační gesta aplikace. Vy a mnoho dalších na Google Issue Tracker může si myslet, že je to chyba, ale ve skutečnosti není... je to zcela záměrné.
Vysvětlení
Jak jsme zjistili během vývoje aplikace Navigační gesta, problém nastává, když má služba usnadnění přístupu accessibilityFeedbackType nastaven na cokoliv jiného než FEEDBACK_GENERIC. Když nastavíme naši službu zpřístupnění tak, aby používala FEEDBACK_HAPTIC, dialogové okno hlasitosti zůstane na obrazovce po dobu 20 sekund. Když jej nastavíme na FEEDBACK_GENERIC, dialogové okno hlasitosti zůstane na obrazovce po dobu 3 sekund.
Důvodem, proč k tomu dochází, jsou dvě metody v implementace dialogu hlasitosti v AOSP. První metoda s názvem computeFeedbackEnabled zkontroluje, zda existují nějaké povolené služby usnadnění, které jsou „neobecné“. Pokud je true, pak je logická hodnota mFeedbackEnabled nastavena na hodnotu true. Ve druhé metodě, computeTimeoutH, pokud mFeedbackEnabled vrátí hodnotu true, pak je časový limit dialogu hlasitosti nastaven na 20 sekund, jinak je nastaven na 3 sekundy.
Tytometody byly přidány ve verzi Android 6.0 Marshmallow, a proto tento problém s dialogem svazku ovlivňuje všechna vydání Androidu od Android Marshmallow včetně Android Nougat, Android Oreo a Android Pie. Nejsme si úplně jisti proč tyto metody byly přidány, protože popisy odevzdání nebyly jasné. Pokud bych se měl hádat, proč toto chování existuje, řekl bych, že je to proto, abych pomohl uživatelům s jistotou postižení zvládají dialog hlasitosti pomocí hlasových nebo jiných vstupů, protože výchozí 3sekundový časový limit je příliš krátký pro ně. Pokud Android zjistí, že uživatel používá službu usnadnění určitého typu, automaticky prodlouží dobu trvání dialogu hlasitosti, aby měl uživatel větší šanci na interakci s ním. Bez ohledu na to je jasné, že tento problém je není chyba ale je spíše úplně podle návrhu. Bohužel to znamená, že neexistuje žádná „oprava“ problému kromě toho, že by Google přesvědčil, aby to změnil toto rozhodnutí nebo přesvědčit vývojáře aplikací, aby ve své přístupnosti nepoužívali neobecné typy zpětné vazby Služby.
Vývojáři Signal Spy již potvrdili, že problém vyřešili ve své příští beta verzi, takže pokud se s problémem setkáte a chcete zjistit, zda byl vyřešen, by měli vývojáře aplikací nasměrovat na tento článek, aby si byli vědomi problému (jako mnozí si toho neuvědomují.) Pokud budoucí verze Androidu toto chování změní, umožníme vám všem vědět. Nyní jste si alespoň vědomi tohoto problému a toho, co jej způsobuje, takže zjistíte, které aplikace vám tento problém způsobují.