Hur man lägger till vänster/högermarkörer i navigeringsfältet under textinmatning på Android O

En handledning om hur man visar vänster/höger markörknappar till navigeringsfältet på Android O, men bara när ett textinmatningsfält är aktivt.

Ett av de äldsta funktionstilläggen till anpassade ROM-skivor som ännu inte har tagit sig in i en officiell version av Android är möjligheten att manuellt flytta din textinmatningsmarkör. Beroende på din ROM kan du ha möjlighet att flytta textinmatningsmarkören med hjälp av volymknapparna eller genom att trycka på virtuella knappar i navigeringsfältet. Den här funktionen är viktig om du ofta går tillbaka för att göra korrigeringar när du skriver, men utan en anpassad ROM kommer du inte att kunna njuta av den.

Men om du kör Android O Developer Preview som har en ny navigeringsfältsanpassare gömd under SystemUI Tuner, sedan kan du lägga till vänster/höger tangentbordsmarkörer i navigeringsfältet. Allt du behöver göra är att ställa in den vänstra navigeringsknappen på KEYCODE_DPAD_LEFT (#21) och höger navigeringsknapp till KEYCODE_DPAD_RIGHT (#22). När det gäller ikonerna är det mest meningsfullt att använda standardikonerna för vänster/högerpilar. Denna metod fungerar definitivt,

som påpekats av Android Police, men det är felaktigt eftersom det kräver att dessa nycklar placeras permanent på navigeringsfältet.

Om du harvaritföljande min tidigareHandledningar på Android O-navigeringsfältsanpassaren, då vet du att det är möjligt att ändra de två navigeringsknapparna baserat på vilka kriterier vi vill. Därför, för att göra våra nya textinmatnings-/tangentbordsmarkörer mer kontextmedvetna, kan vi använda Tasker för att visa tangentbordsmarkörknapparna endast när textinmatning visas på Android O. Vi kommer att tillhandahålla steg-för-steg-instruktioner i den här handledningen, men du kan också hoppa till botten för att ladda ner profilen för att importera den.

Tack till Eli Irvin för att du testade min Tasker-profil och tog den här skärminspelningen!


Visa vänster/högermarkörer i navigeringsfältet under textinmatning

Krav:

  • Tasker ($2.99)
  • SecureTask
  • AutoInput Beta (~$1.70)

Tasker är nödvändigt eftersom det är automationsappen vi använder som, när AutoInput upptäcker ett textfält, skickar kommandon via SecureTask-plugin-programmet för att ändra vårt navigeringsfält. När du har installerat dessa applikationer måste vi konfigurera dem.

Även om det inte finns något direkt sätt att upptäcka när tangentbordet visas, är en sak vi kan övervaka när ett textfält är i fokus. Du vet när ett textinmatningsfält är i fokus genom att observera att en blinkande markör visas i en textruta. Vi kan övervaka dessa genom att använda den senaste betaversionen av AutoInput som precis släpptes, vilket gör att vi kan åstadkomma detta. För att AutoInput ska övervaka textfält måste vi aktivera dess tillgänglighetstjänst.

Att göra det är väldigt snabbt, gå helt enkelt till Inställningar --> Tillgänglighet och leta efter "AutoInput" på listan över tjänster. Aktivera tillgänglighetstjänsten.

Därefter måste vi ge SecureTask möjligheten att ändra systeminställningar på vår enhet. För att göra det måste vi ge SecureTask en särskild behörighet känd som WRITE_SECURE_SETTINGS som är normalt otillgänglig för vanliga applikationer, men kan beviljas manuellt av en användare genom användning av ADB. Därför måste du ha ADB igång på din maskin för att få detta att fungera. Lyckligtvis är det bara en engångssak att ge detta tillstånd, så om du planerar att följa någon av våra andra Android O-relaterade guider, du måste göra detta så småningom.

Konfigurera ADB

Det första du behöver göra är att ladda ner ADB-binären för just ditt operativsystem. Det kan du göra här. När du har laddat ner dem måste du se till att du har rätt förare om du använder Windows.

När du har extraherat binären till en separat mapp och har installerat drivrutinen måste vi nästa aktivera USB-felsökning på smarttelefonen. För att göra det, öppna Inställningar och gå till Om telefonen. Tryck på Byggnummer 7 gånger tills du får en dialogruta som talar om att du har låst upp utvecklaralternativ. Du kan komma åt utvecklaralternativ i Inställningar nu. Tydligen i Android O måste du ange din pinkod/lösenord innan du kan öppna utvecklaralternativ. Gör det och leta efter USB Debugging och aktivera det sedan.

Anslut nu din telefon och öppna en kommandotolk i samma katalog där du extraherade ADB-binären. (Windows-användare, håll ned skift+högerklicka i den mappen och välj "öppna kommandotolken här.") Skriv adb devices i kommandotolken. Du kommer att se ett meddelande om att ADB-servern startas, och sedan på din telefon kommer du att se en uppmaning som ber dig att ge din dator ADB-åtkomst. Acceptera den. Nu när du går in adb devices i kommandotolken bör du se enhetens serienummer, i så fall lyckades du.

Beviljar WRITE_SECURE_SETTINGS till SecureTask

Med en ADB-kommandotolk öppen, skriv in följande kommando för att ge SecureTask den nödvändiga behörigheten.

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

SecureTask kommer nu att ha möjlighet att ändra systeminställningar utan root-åtkomst! Nu är vi redo att gå vidare till Tasker.

Konfigurera Tasker-profilen

Öppna Tasker och skapa en ny profil genom att trycka på +-knappen. Namnge det Tangentbordsmarkörer och välj Händelse Sammanhang. Gå till Plugin --> AutoInput --> UI Action. För åtgärdstyper, välj Ingångselement fokuserat och Ingångselementets fokus förlorat. Lämna elementtexten tom. Om du lägger till denna AutoInput Context startar AutoInputs monitortjänst för att upptäcka när en textinmatning fält vinner eller tappar fokus och lagrar det i en variabel som ett booleskt (sant/falskt) värde som vi kan läsa.

När du är klar med att skapa profilen kommer Tasker att be dig lägga till en uppgift. Välj att skapa en ny uppgift, men bry dig inte om att ge den ett namn. När du är på skärmen Uppgiftsredigering lägger du till följande åtgärder:

  1. A1: Uppgift --> Om. Ställ in den på om %aifocus ~ sant. Detta kommer att vara vårt villkor för när AutoInput upptäcker att ett textinmatningsfält är i fokus. De följande två åtgärderna kommer att ställa in navigeringsfältstangenterna till tangenterna DPAD_LEFT och DPAD_RIGHT.
  2. A2: Plugin --> SecureTask --> Säkra inställningar. Handling: Skriva. Miljö: secure sysui_nav_bar_left. Värde: key(21:com.android/systemui/2131230907).
  3. A3: Plugin --> SecureTask --> Säkra inställningar. Handling: Skriva. Miljö: secure sysui_nav_bar_right. Värde: key(22:com.android/systemui/2131231004).
  4. A4: Uppgift --> Annat. Detta är när %aifocus är inställt på falskt, i ordordning har textinmatningsfältet tappat fokus. Vi kommer sedan att rensa navigeringsknapparna.
  5. A5: Plugin --> SecureTask --> Säkra inställningar. Handling: Skriva. Miljö: secure sysui_nav_bar_left. Värde: null.
  6. A6: Plugin --> SecureTask --> Säkra inställningar. Handling: Skriva. Miljö: secure sysui_nav_bar_right. Värde: null.
  7. A7: Uppgift --> Avsluta If.

Du är klar med det här Tasker-skriptet. Nu, när som helst AutoInput upptäcker ett textinmatningsfält i fokus (som korrelerar med när ditt tangentbord är visas), kommer du att se två nya navigeringsfältsmarkörtangenter som försvinner när textinmatningsfältet inte längre finns i fokus.


Ladda ner och importera

Som med alla Tasker-relaterade handledningar kommer vi att tillhandahålla XML-filen som du kan ladda ner och importera. Ladda ner .prf.xml-filen från AndroidFileHost nedan och spara den i ditt interna minne. Öppna Tasker och tryck länge på fliken Profiler upptill tills du ser en Importera-knapp. Tryck på det och leta efter XML-filen du just sparade, välj sedan den för att importera den. Se till att du har AutoInputs tillgänglighetstjänst aktiverad och har beviljat WRITE_SECURE_SETTINGS till SecureTask som nämnts i min artikel, annars fungerar inte den här profilen vad som helst på din telefon!

Ladda ner profilen "Tangentbordsmarkörer" från AndroidFileHost

Om du undrar vilka andra användbara tangenter vi kan lägga till i navigeringsfältet för att göra Android O till en roligare upplevelse, visar vi dig en alternativ inställning i en framtida handledning.