Is het je opgevallen dat het 20 seconden duurt voordat het volumedialoogvenster op je Android verdwijnt, tenzij je handmatig op het scherm tikt? Dit is waarom dat gebeurt.
Is het je opgevallen dat het volumedialoogvenster dat verschijnt als je op de volumeknoppen drukt, even duurt te lang om vanzelf te verdwijnen? Toen u uw Android-telefoon voor het eerst kreeg, werd het volumedialoogvenster na een paar seconden automatisch gesloten zonder uw tussenkomst. Vervolgens zou het ergens in de afgelopen paar dagen, weken of maanden lang duren voordat het verdween, tenzij je op je scherm tikte. Als u dit probleem ervaart en u er woedend van wordt, bent u niet de enige.
In dit artikel gaan we uitleggen wat er aan de hand is en waarom dit gebeurt, zodat u het probleem zelf kunt oplossen of dit artikel naar een ontwikkelaar kunt sturen, zodat zij het probleem kunnen oplossen. Laten we eerst precies beschrijven wat het probleem is, zodat het duidelijk is dat we het over hetzelfde probleem hebben als waarmee u te maken heeft.
Het probleem
Je drukt op de volumeknop op je Android-smartphone of tablet om het volume te wijzigen, maar het volume Het duurt lang voordat een dialoogvenster dat verschijnt vanzelf verdwijnt, tenzij u op het scherm tikt om het te maken verdwijnen. Hoe lang blijft het volumedialoogvenster zelfstandig actief? Precies 20 seconden.
Credits: /u/KegelCandy
Een populaire thread op Reddit's /r/Google Pixel subreddit had veel gebruikers laten weten dat ze met dit probleem werden geconfronteerd. Niet iedereen had echter dit probleem. Sommige gebruikers verklaarden dat hun volumedialogen slechts 3 seconden op het scherm bleven staan, wat normaal gedrag is. Dus wat veroorzaakte dit probleem? Voor de meeste gebruikers in die thread bleek dat de reden een app was met de naam Signal Spy - hoewel sommige gebruikers in die thread zeiden dat andere apps dit gedrag ook veroorzaakten.
Prijs: gratis.
3.9.
Signal Spy is een app die populair is onder abonnees van de Project Fi-service van Google. Project Fi-gebruikers zijn dol op de app omdat deze het analyseren van uw huidige netwerkconnectiviteit ondersteunt en automatisch schakelen tussen Sprint en T-Mobile ondersteunt. Het beste gedeelte? Het heeft geen root-toegang nodig om tussen de netwerken te schakelen. Signal Spy maakt gebruik van een toegankelijkheidsservice (een service die gebruikmaakt van de toegankelijkheids-API's van Android die normaal gesproken worden gebruikt om gebruikers te helpen met een handicap, maar worden ook gebruikt in honderden reguliere apps) om automatisch tussen providers te schakelen door de kiescode in te voeren snelkoppelingen.
De mogelijkheid van Signal Spy om automatisch tussen providers te schakelen op Project Fi is ongelooflijk handig, maar het is ook de reden dat Android's volumedialoogprobleem zich voordoet. De enige overeenkomst tussen Signal Spy en de andere apps zoals LastPass, Fingerprint Gestures, Zoho Vault, Amazon Assistant en andere apps die ervoor zorgen dat dit probleem optreedt, is dat ze gebruik maken van een Toegankelijkheidsdienst. Eén manier om dit probleem op te lossen is door naar Instellingen --> Toegankelijkheid te gaan en elke toegankelijkheidsservice één voor één uit te schakelen. Waarom veroorzaken alleen de toegankelijkheidsservices van sommige apps dit probleem? Taskerheeft bijvoorbeeld niet met dit probleem te maken, en de onze ook niet Navigatiegebaren app. Jij en vele anderen op de Google-probleemtracker denkt misschien dat het een bug is, maar dat is het eigenlijk niet - het is volledig door ontwerp.
De toelichting
Zoals we ontdekten tijdens de ontwikkeling van de app Navigatiegebaren, doet het probleem zich voor wanneer een toegankelijkheidsservice de toegankelijkheidFeedbackType ingesteld op iets anders dan FEEDBACK_GENERIC. Wanneer we onze Toegankelijkheidsservice zo instellen dat FEEDBACK_HAPTIC wordt gebruikt, blijft het volumedialoogvenster 20 seconden op het scherm staan. Wanneer we dit instellen op FEEDBACK_GENERIC, blijft het volumedialoogvenster 3 seconden op het scherm staan.
De reden dat dit gebeurt is vanwege twee methoden in de implementatie van volumedialogen in AOSP. De eerste methode genaamd computeFeedbackEnabled controleert of er ingeschakelde toegankelijkheidsservices zijn die 'niet-generiek' zijn. Indien waar, wordt de booleaanse waarde mFeedbackEnabled ingesteld op waar. Bij de tweede methode, computeTimeoutH, wordt, als mFeedbackEnabled true retourneert, de time-out van het volumedialoogvenster ingesteld op 20 seconden, anders wordt deze ingesteld op 3 seconden.
Dezemethoden zijn toegevoegd in de Android 6.0 Marshmallow-release en dus heeft dit volumedialoogprobleem invloed op alle Android-releases sinds Android Marshmallow, inclusief Android Nougat, Android Oreo en Android Pie. We zijn er niet helemaal zeker van Waarom deze methoden zijn toegevoegd omdat de commit-beschrijvingen niet duidelijk waren. Als ik zou moeten raden waarom dit gedrag bestaat, zou ik zeggen dat het bedoeld is om gebruikers met zekerheid te helpen handicaps verwerken de volumedialoog met stem- of andere invoer omdat de standaardtime-out van 3 seconden te kort is voor hen. Als Android detecteert dat een gebruiker een toegankelijkheidsservice van een bepaald type gebruikt, wordt automatisch de duur van de volumedialoog verlengd, zodat de gebruiker een betere kans heeft om ermee te communiceren. Hoe het ook zij, het is duidelijk dat dit een probleem is geen bug maar is eerder geheel met opzet. Helaas betekent dit dat er geen oplossing is voor het probleem, afgezien van het overtuigen van Google om wijzigingen aan te brengen deze beslissing nemen of app-ontwikkelaars overtuigen om geen niet-generieke feedbacktypen te gebruiken in hun toegankelijkheid Diensten.
De ontwikkelaars van Signal Spy hebben al bevestigd dat ze het probleem in hun volgende bètaversie hebben opgelost, dus als je het probleem ervaart en wilt zien of het is opgelost, kun je app-ontwikkelaars op dit artikel moeten wijzen, zodat ze op de hoogte zijn van het probleem (zoals velen zich niet bewust zijn). Als een toekomstige versie van Android dit gedrag verandert, laten we het jullie allemaal weten weten. Je bent nu tenminste op de hoogte van dit probleem en de oorzaak ervan, zodat je erachter kunt komen welke apps dit probleem bij jou veroorzaken.