Hoe u links/rechts-cursors aan de navigatiebalk kunt toevoegen tijdens tekstinvoer op Android O

Een tutorial over hoe je de cursorknoppen links/rechts kunt weergeven in de navigatiebalk op Android O, maar alleen als een tekstinvoerveld actief is.

Een van de oudste functietoevoegingen aan aangepaste ROM's die nog niet in een officiële release van Android zijn opgenomen, is de mogelijkheid om uw tekstinvoercursor handmatig te verplaatsen. Afhankelijk van uw ROM heeft u mogelijk de mogelijkheid om de tekstinvoercursor te verplaatsen met de volumeknoppen of door op virtuele knoppen op de navigatiebalk te drukken. Deze functie is essentieel als u vaak teruggaat om correcties aan te brengen tijdens het typen, maar zonder een aangepast ROM kunt u er niet van genieten.

Als u echter de Preview voor Android O-ontwikkelaars die een nieuwe heeft navigatiebalk-aanpasser verborgen onder SystemUI Tuner, kunt u vervolgens links/rechts-toetsenbordcursors aan uw navigatiebalk toevoegen. Het enige wat u hoeft te doen is de linkernavigatiebalktoets in te stellen op KEYCODE_DPAD_LEFT (#21) en de rechter navigatiebalktoets naar

KEYCODE_DPAD_RIGHT (#22). Wat de pictogrammen betreft, is het gebruik van de standaard pijl-links/rechts-pictogrammen het meest logisch. Deze methode werkt zeker, zoals aangegeven door Android-politie, maar het is gebrekkig omdat het vereist dat deze sleutels worden geplaatst permanent op de navigatiebalk.

Als jij hebtgeweestals vervolg op Mijn vorigbijlessen in de Android O-navigatiebalkaanpasser, dan weet je dat het mogelijk is om de twee navigatiebalktoetsen te wijzigen op basis van welke criteria we maar willen. Om onze nieuwe tekstinvoer-/toetsenbordcursors meer contextbewust te maken, kunnen we Tasker gebruiken toon alleen toetsenbordcursorknoppen terwijl tekstinvoer wordt weergegeven op Android O. In deze zelfstudie geven we stapsgewijze instructies, maar u kunt ook naar beneden gaan om het profiel te downloaden en te importeren.

Met dank aan Eli Irvin voor het testen van mijn Tasker-profiel en het vastleggen van deze schermopname!


Toon links/rechts-cursors in de navigatiebalk tijdens tekstinvoer

Vereisten:

  • Tasker ($2.99)
  • Veilige taak
  • Automatische invoer bèta (~$1.70)

Tasker is nodig omdat het de automatiseringsapp is die we gebruiken en die, wanneer AutoInput een tekstveld detecteert, opdrachten via de SecureTask-plug-in verzendt om onze navigatiebalk te wijzigen. Nadat u deze applicaties heeft geïnstalleerd, moeten we ze instellen.

Hoewel er geen directe manier is om te detecteren wanneer het toetsenbord wordt weergegeven, kunnen we wel controleren of een tekstveld scherp is. U weet wanneer een tekstinvoerveld scherp is door te zien dat er een knipperende cursor in een tekstvak verschijnt. We kunnen deze monitoren door de nieuwste bètaversie van AutoInput te gebruiken, die nog maar net is uitgebracht, waardoor we dit kunnen bereiken. Om ervoor te zorgen dat AutoInput tekstvelden kan controleren, moeten we de toegankelijkheidsservice inschakelen.

Dit gaat heel snel. Ga gewoon naar Instellingen --> Toegankelijkheid en zoek naar "AutoInput" in de lijst met services. Schakel de toegankelijkheidsservice in.

Vervolgens moeten we SecureTask de mogelijkheid geven om de systeeminstellingen op ons apparaat te wijzigen. Om dit te doen, moeten we SecureTask een speciale toestemming verlenen, bekend als WRITE_SECURE_SETTINGS, die normaal gesproken niet toegankelijk voor reguliere applicaties, maar kan handmatig door een gebruiker worden verleend via het gebruik van ADB. U moet dus ADB op uw computer hebben geïnstalleerd om dit werkend te krijgen. Gelukkig is het verlenen van deze toestemming slechts eenmalig, dus als u van plan bent een van onze richtlijnen te volgen andere Android O-gerelateerde handleidingen, zul je dit uiteindelijk moeten doen.

ADB instellen

Het eerste dat u hoeft te doen, is het ADB-binaire bestand voor uw specifieke besturingssysteem downloaden. Dat kan hier. Nadat u ze heeft gedownload, moet u ervoor zorgen dat u de juiste chauffeur als je Windows gebruikt.

Nadat u het binaire bestand naar een aparte map hebt uitgepakt en het stuurprogramma hebt geïnstalleerd, moeten we vervolgens USB-foutopsporing op de smartphone inschakelen. Open hiervoor Instellingen en ga naar Over de telefoon. Tik zeven keer op Build Number totdat je een dialoogvenster krijgt waarin staat dat je de ontwikkelaarsopties hebt ontgrendeld. Je hebt nu toegang tot de ontwikkelaarsopties via Instellingen. Blijkbaar moet je in Android O je pincode/wachtwoord invoeren voordat je Developer Options kunt openen. Doe dit, zoek naar USB-foutopsporing en schakel dit vervolgens in.

Sluit nu uw telefoon aan en open een opdrachtprompt in dezelfde map waarin u het ADB-binaire bestand hebt uitgepakt. (Windows-gebruikers: houd shift+rechtsklik in die map ingedrukt en selecteer 'open opdrachtprompt hier'.) Type adb devices in de opdrachtprompt. U ziet een bericht dat de ADB-server wordt gestart en vervolgens ziet u op uw telefoon een prompt waarin u wordt gevraagd uw computer ADB-toegang te verlenen. Accepteer het. Als je nu binnenkomt adb devices in de opdrachtprompt, zou u het serienummer van uw apparaat moeten zien, als dat zo is, dan bent u succesvol geweest.

WRITE_SECURE_SETTINGS wordt verleend aan SecureTask

Open een ADB-opdrachtprompt en voer de volgende opdracht in om SecureTask de vereiste toestemming te verlenen.

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

SecureTask heeft nu de mogelijkheid om systeeminstellingen te wijzigen zonder root-toegang! Nu zijn we klaar om verder te gaan naar Tasker.

Het Tasker-profiel instellen

Open Tasker en maak een nieuw profiel door op de knop + te drukken. Noem maar op Toetsenbordcursors en kies de Evenement Context. Ga naar Plug-in --> AutoInput --> UI-actie. Selecteer voor de actietypen Invoerelement gefocust En Focus van invoerelement verloren. Laat de elementtekst leeg. Als u deze AutoInput-context toevoegt, wordt de monitorservice van AutoInput gestart om te detecteren wanneer er tekst wordt ingevoerd veld krijgt of verliest de focus, en slaat het op in een variabele als een Booleaanse waarde (waar/onwaar) die we kunnen lezen.

Zodra u klaar bent met het maken van het profiel, zal Tasker u vragen een taak toe te voegen. Kies ervoor om een ​​nieuwe taak te maken, maar geef deze geen naam. Eenmaal in het Taakbewerkingsscherm voegt u de volgende acties toe:

  1. A1: Taak --> Als. Stel dit in op if %aifocus ~ true. Dit zal onze voorwaarde zijn voor wanneer AutoInput detecteert dat een tekstinvoerveld scherp is. Met de volgende twee acties worden de navigatiebalktoetsen ingesteld op de toetsen DPAD_LEFT en DPAD_RIGHT.
  2. A2: Plug-in --> SecureTask --> Veilige instellingen. Actie: Schrijven. Instelling: secure sysui_nav_bar_left. Waarde: key(21:com.android/systemui/2131230907).
  3. A3: Plug-in --> SecureTask --> Veilige instellingen. Actie: Schrijven. Instelling: secure sysui_nav_bar_right. Waarde: key(22:com.android/systemui/2131231004).
  4. A4: Taak --> Anders. Dit is wanneer %aifocus is ingesteld op false, wat betekent dat het tekstinvoerveld de focus heeft verloren. Vervolgens zullen we de navigatiebalktoetsen wissen.
  5. A5: Plug-in --> SecureTask --> Veilige instellingen. Actie: Schrijven. Instelling: secure sysui_nav_bar_left. Waarde: null.
  6. A6: Plug-in --> SecureTask --> Veilige instellingen. Actie: Schrijven. Instelling: secure sysui_nav_bar_right. Waarde: null.
  7. A7: Taak --> Einde Als.

Je bent klaar met dit Tasker-script. Nu kan AutoInput op elk moment detecteren dat een tekstinvoerveld in focus is (wat overeenkomt met wanneer uw toetsenbord dat is). weergegeven), ziet u twee nieuwe navigatiebalkcursortoetsen die verdwijnen als het tekstinvoerveld niet meer bestaat in focus.


Downloaden en importeren

Zoals bij alle Tasker-gerelateerde tutorials, leveren we het XML-bestand dat u kunt downloaden en importeren. Download het .prf.xml-bestand van AndroidFileHost hieronder en sla het op in uw interne opslag. Open Tasker en druk lang op het tabblad Profielen bovenaan totdat u een knop Importeren ziet. Tik daarop en zoek naar het XML-bestand dat u zojuist hebt opgeslagen en selecteer het vervolgens om het te importeren. Zorg ervoor dat de toegankelijkheidsservice van AutoInput is ingeschakeld en dat u de SCHRIJF_SECURE_SETTINGS naar SecureTask zoals vermeld in mijn artikel, anders werkt dit profiel niet alles op je telefoon!

Download het profiel "Toetsenbordcursors" van AndroidFileHost

Als je je afvraagt ​​welke andere handige toetsen we aan de navigatiebalk kunnen toevoegen om Android O een aangenamere ervaring te maken, laten we je een alternatieve opstelling zien in een toekomstige les.