Ați observat că dialogul de volum de pe Android durează 20 de secunde pentru a dispărea, cu excepția cazului în care atingeți manual ecranul? Iată de ce se întâmplă asta.
Ați observat că dialogul de volum care apare când apăsați butoanele de volum durează puțin de asemenea mult timp să dispară de la sine? Când primești telefonul Android, dialogul de volum se închide automat după câteva secunde fără intervenția ta. Apoi, cândva în ultimele zile, săptămâni sau luni, ar dura mult timp să dispară, dacă nu ați apăsat pe ecran. Dacă te confrunți cu această problemă și te enervează, nu ești singur.
În acest articol, vom explica ce se întâmplă și de ce se întâmplă, astfel încât să puteți fie să remediați singur problema, fie să trimiteți acest articol unui dezvoltator pentru ca acesta să o rezolve. Să descriem mai întâi exact care este problema, astfel încât să fie clar că ne referim la aceeași problemă cu care te confrunți.
Problema
Apăsați butonul de volum de pe smartphone-ul sau tableta Android pentru a schimba volumul, dar volumul dialogul care apare durează mult timp să dispară de la sine, dacă nu atingeți ecranul pentru a o face dispărea. Cât timp rămâne singur dialogul de volum? Exact 20 de secunde.
Credite: /u/ConeCandy
Un thread popular pe /r/ de la RedditGooglePixel subreddit a avut mulți utilizatori care au spus că se confruntau cu această problemă. Cu toate acestea, nu toată lumea avea această problemă. Unii utilizatori au declarat că dialogurile lor de volum au rămas pe ecran doar 3 secunde, ceea ce este comportamentul normal. Deci, ce a cauzat această problemă? Pentru majoritatea utilizatorilor din acel fir, se dovedește că motivul a fost o aplicație numită Signal Spy - deși unii utilizatori din acel thread au spus că și alte aplicații au cauzat acest comportament.
Pret: Gratuit.
3.9.
Signal Spy este o aplicație populară printre abonații serviciului Google Project Fi. Utilizatorii Project Fi iubesc aplicația deoarece acceptă analiza conectivității actuale la rețea și acceptă comutarea automată între Sprint și T-Mobile. Cea mai bună parte? Nu are nevoie de acces root pentru a comuta între rețele. Signal Spy folosește un serviciu de accesibilitate (un serviciu care utilizează API-urile de accesibilitate Android, care sunt utilizate în mod normal pentru a ajuta utilizatorii cu dizabilități, dar sunt utilizate și în sute de aplicații obișnuite) pentru a comuta automat între operatori prin introducerea codului de apelare comenzi rapide.
Capacitatea lui Signal Spy de a comuta automat între operatori pe Project Fi este incredibil de utilă, dar este și motivul pentru care apare problema dialogului de volum al Android. Singura caracteristică comună între Signal Spy și alte aplicații precum LastPass, Fingerprint Gestures, Zoho Vault, Amazon Assistant și alte aplicații care provoacă această problemă este că acestea utilizați un serviciu de accesibilitate. Accesarea Setări --> Accesibilitate și dezactivarea fiecărui serviciu de accesibilitate unul câte unul este o modalitate de a rezolva această problemă. De ce, atunci, numai serviciile de accesibilitate ale unor aplicații provoacă această problemă? Tasker, de exemplu, nu se confruntă cu această problemă și nici a noastră Gesturi de navigare aplicația. Tu și mulți alții de pe Google Issue Tracker poate crede că este un bug, dar de fapt nu este - este în întregime prin design.
Explicatia
După cum am descoperit în timpul dezvoltării aplicației Gesturi de navigare, problema apare atunci când un serviciu de accesibilitate are accesibilitateFeedbackType setat la orice altceva decât FEEDBACK_GENERIC. Când setăm serviciul nostru de accesibilitate să utilizeze FEEDBACK_HAPTIC, dialogul privind volumul rămânea pe ecran timp de 20 de secunde. Când îl setăm la FEEDBACK_GENERIC, dialogul de volum rămâne pe ecran timp de 3 secunde.
Motivul pentru care se întâmplă acest lucru este din cauza a două metode din implementarea dialogului de volum în AOSP. Prima metodă numită computeFeedbackEnabled verifică dacă există servicii de accesibilitate activate care nu sunt generice. Dacă este adevărat, atunci valoarea booleană mFeedbackEnabled este setată la adevărat. În a doua metodă, computeTimeoutH, dacă mFeedbackEnabled returnează true, atunci timpul de expirare al dialogului de volum este setat la 20 de secunde, în caz contrar, este setat la 3 secunde.
Acestemetode au fost adăugate în versiunea Android 6.0 Marshmallow și, prin urmare, această problemă de dialog de volum afectează toate versiunile Android de la Android Marshmallow, inclusiv Android Nougat, Android Oreo și Android Pie. Nu suntem pe deplin siguri De ce aceste metode au fost adăugate deoarece descrierile de comitere nu erau clare. Dacă ar fi să risc să ghicesc de ce există acest comportament, aș spune că este pentru a ajuta utilizatorii cu anumite dizabilitățile gestionează dialogul de volum cu voce sau alte intrări, deoarece timpul de expirare implicit de 3 secunde este prea scurt pentru ei. Dacă Android detectează că un utilizator folosește un serviciu de accesibilitate de un anumit tip, acesta extinde automat durata dialogului de volum, astfel încât utilizatorul să aibă șanse mai mari de a interacționa cu acesta. Indiferent, este clar că această problemă este nu un bug dar este mai degrabă în întregime de proiectare. Din păcate, asta înseamnă că nu există nicio „remediere” a problemei în afară de a convinge Google să modifice această decizie sau convingeți dezvoltatorii de aplicații să nu folosească tipuri de feedback non-generice în Accesibilitatea lor Servicii.
Dezvoltatorii Signal Spy au confirmat deja că au remediat problema în următoarea versiune beta, așa că dacă întâmpinați problema și doriți să vedeți dacă este rezolvată, ar trebui să îndrume dezvoltatorii de aplicații către acest articol, astfel încât să fie conștienți de problemă (deoarece mulți nu știu.) Dacă o versiune viitoare de Android modifică acest comportament, vă vom lăsa pe toți stiu. Cel puțin acum sunteți conștient de această problemă și de ce o cauzează, așa că vă dați seama ce aplicații vă cauzează această problemă.