Tack vare en ny behörighet implementerad i Android Oreo kan systemapplikationer nu ställa in lyssnare för att upptäcka långa tryckningar på volymknapparna.
Att lägga till ytterligare funktionalitet till olika hårdvaru- och mjukvaruknappar på våra enheter är något Android-entusiaster har gjort ett tag. De flesta känner till applikationer som t.ex Button Mapper från XDA Recognized Developer flar2och vi pratade till och med om andra remapper lösningar tillbaka när Galaxy S8 släpptes. Medan dessa lösningar hanterade dessa åtgärder på ett visst sätt, ser Google ut att implementera en lyssnare i Android Oreo för att trycka länge på volymknapparna. Detta innebär att applikationer i framtiden potentiellt kan reagera på långa volymknapptryckningar även medan skärmen är avstängd, vilket kan användas för att överföra en ofta efterfrågad funktion från anpassade ROM - musikspårkontroll med volymknapp pressar.
Det vill vi nämna denna funktion är faktiskt inte aktiverat i den användarvända versionen som vi har tillgänglig för oss just nu. Stöd för det finns dock, vilket framgår av åtagandet vi hittade, och det betyder att det kan aktiveras av OEM för din specifika enhet. Som nämnts fungerar traditionella ommappningsapplikationer genom att detektera om en KeyEvent har skickats (med långa tryck mäter dessa appar tiden mellan en tangent ner och tangent upp-händelse medan de vid dubbeltryck mäter tiden mellan nedtryckningar), men dessa KeyEvents skickas bara när skärmen är på. Dessutom kräver de också vanligtvis användningen av en tillgänglighetstjänst som kan belasta prestandan.
Din typiska knappombildningslösning kan anses vara en lösning som ska användas för att slå på eller av ficklampan, öppna en applikation, dra ner aviseringspanelen och så vidare. Men det som Google har implementerat i Android Oreo tar detta ett steg längre genom att låta systemapplikationer själva ställa in dessa volymknappar som lyssnar länge. Detta kan tillåta användaren att trigga något i själva applikationen när plattformen upptäcker att en volymknapp har hållits nere i några sekunder.
Sättet som Google har inkluderat stöd för detta i Android Oreo, kommer detta endast att fungera för "privilegierade" (aka förinstallerade system) applikationer direkt. OEM behöver bara tillåta den privilegierade applikationen att ha android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
lov för att ställa in lyssnaren. Vi har dock kunnat ge sådana behörigheter med ADB-kommandon så det är möjligt att de av oss som vet kan manuellt ställa in detta för en tredjepartsapplikation också.