Hur du ändrar dina navigeringsfältsikoner eller omarrangerar knapparna utan rot

I den här handledningen kommer vi att visa dig hur du ändrar ikonerna på din navigeringsfält eller omarrangerar knapparna om du kör Nougat. Ingen rot behövs.

Ni som kör först Android O Developer Preview kan ha lekt med dess dolda navigeringsfältsanpassare finns i SystemUI Tuner. Denna navbar-anpassare har faktiskt funnits i AOSP i månader, men man trodde att det enda sättet att komma åt den på Android Nougat var genom en modifiering av System UI APK, vilket naturligtvis skulle kräva root-åtkomst. Det var inte förrän denna vecka som vi upptäckte att Android Nougats dolda navigeringsfältsanpassare kunde faktiskt nås utan att behöva root-åtkomst, ett anpassat ROM eller en systemgränssnittsmod. Med den här funktionen kan vi ändra navigeringsfältets ikoner, byta om tangenterna eller lägga till ytterligare knappar.

Det stämmer - det är möjligt att modifiera din navigeringsfält på en helt stock, orootad ROM med en låst bootloader. Funktionalitet som folk trodde var begränsad till Android O är faktiskt tillgänglig för alla som kör Android Nougat på Nexus, Pixel, OnePlus och vissa Sony-, HTC- och Motorola-telefoner. Om din enhet kör programvara som är nära Googles mjukvara (förlåt Samsung- och Huawei/Honor-användare), är chansen stor att din enhet har den dolda AOSP-navigeringsfältsanpassaren som vi kan använda. I den här handledningen kommer jag att visa dig hur du kan använda navigeringsfältsanpassningen till 

ändra knappikonerna till vad du vill eller ordna om dem i vilken ordning du vill.

Google Pixel Nav Bar på Nexus 6

Omvänd navigeringsfält på Nexus 6

Ändra navigeringsfältet - Inställningar

Krav: Du behöver en enhet som är kompatibel med AOSP navigeringsfältsanpassaren. Se avsnittet "kompatibilitet". i denna tråd. (Obs: din enhets OEM eller typ kanske inte finns med i den tråden. Det enda sättet att veta säkert om din enhet är kompatibel är att prova den, vilket vi kommer att visa dig hur du gör nedan.

Det finns två sätt att ändra vårt navigeringsfält. Den ena är med en app, och den andra är genom ADB-skalkommandon (vilket är hur appen fungerar). Vi kommer att visa er båda för fullständighetens skull, men notera att från och med nu kan du inte ändra aktienavigeringsfältets ikoner via appen förrän utvecklaren uppdaterar sin app för att inkludera den här funktionen.

Det första vi behöver göra är att se till att det till och med är möjligt att ändra navigeringsfältet på din enhet. Om din enhet är en av de som listas som kompatibla i Tråd för anpassad navigeringsfält, då är chansen stor att det blir det. Vi kan verifiera genom att gå igenom den korta handledningen som följer med den här appen.

Installera appen från Google Play Butik (och även registrera dig för betatestning så vi kan använda dess experimentella funktion för att ordna om navigeringsfältet senare). Öppna sedan appen och fortsätt genom de inledande skärmarna. Anpassad navigeringsfält kommer att be dig att ge den en viss behörighet som heter WRITE_SECURE_SETTINGS för att fortsätta använda appen. Det finns två sätt du kan göra detta på, som anges i ansökan.

  1. Om du har en rotad enhet, öppna upp Terminalemulator på din telefon och ge den root-åtkomst genom att skriva su. Skriv sedan in detta kommando: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Om din enhet inte är rootad måste du ge tillståndet via ADB. Öppna en kommandotolk/terminal på din maskin och skriv sedan in följande kommando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

När du har gett appen denna behörighet genom någon av de två metoderna ovan, fortsätter appen med ett kompatibilitetstest. Om ditt navigeringsfält inte ändras har du tyvärr ingen tur. Om ditt navigeringsfält ändras till att visa en högerpil, så grattis att din enhet stöds! Vi kan nu gå vidare till att ändra vårt navigeringsfält.


Omarrangera Nav Bar-knapparna

App metod

Nu när du har ställt in appen är det väldigt, väldigt enkelt att ordna om navigeringsfältsknapparna. Du måste vara på betatestversionen av Custom Navigation Bar-appen för att kunna göra detta, så gå tillbaka och se till att du är på betakanalen innan du fortsätter.

Om du använder betaversionen kommer du att se ett avsnitt som heter experimentella justeringar i huvudsektionen Inställningar. Tryck på det och du kommer att se alternativ som låter dig byta ut de befintliga nycklarna på baksidan, hemmet och de senaste. Du kan enkelt ordna om dina nycklar här genom att låta bakåtknappen ändras till översiktsknappen (senaste) och låta översiktsknappen (senaste) ändras till bakåtknappen. Eller ändra dem på vilket sätt du vill, det finns inga egentliga begränsningar här. Efter att ha bytt nycklar kan du också leka med layoutalternativen i navigeringsfältets inställningsmeny.

ADB-metod

Och här är hur du gör samma sak med ADB-kommandon, om du föredrar det. Kommandot som vi kommer att ändra är inställningen Säker inställning som kallas sysui_nav_bar. Denna inställning är en sträng som innehåller navigeringsfältets layout. Standardstrukturen för inställningen är som följer

space, back; home; recent, space

Där mellanslag representerar ett tomt utrymme som skiljer navigeringsfältets tangenter från varandra, och tillbaka, hem och senaste representerar de tre standardknapparna i navigeringsfältet. Om vi ​​till exempel vill byta tillbaka och den senaste nyckeln, måste vi ändra strängen enligt följande

space, recent; home; back, space

Obs: om du försöker ange något av följande kommandon från en rotad skalmiljö som t.ex Terminal Emulator på din telefon, då måste du utelämna "adb-skal" från kommandona innan du skickar dem.

Nu, för att faktiskt modifiera den här strängen, måste vi använda ADB-skalkommandot med denna syntax

adb shell settings put secure sysui_nav_bar "STRING"

Därför skulle kommandot vi skulle skicka för att byta de senaste och bakåtnycklarna se ut så här

adb shell settings put secure sysui_nav_bar "space, recent; home; back, space"

Som du kanske gissar är detta ganska flexibelt. Vi kan flytta runt nycklarna hur vi vill genom att ändra strängvärdet för inställningen. Vi kan till exempel göra våra vändbara navigeringsknappar vänster- eller högerjusterade genom att ändra var de två mellanslagen är placerade:

Vänster berättigad:

adb shell settings put secure sysui_nav_bar "recent; home; back, space, space"

Högerjusterad:

adb shell settings put secure sysui_nav_bar "space, space, recent; home; back"

Men vi kan också ändra navigeringsfältsknapparna så att de är något helt annat än de vanliga tillbaka-, hem- eller de senaste nycklarna, som att skicka en av många Nyckelhändelser. Vi kommer att dra fördel av detta faktum i nästa avsnitt, där vi visar dig hur du ändrar ikonerna på navigeringsfältets knappar.


Anpassade navigeringsfältsikoner

Nu kanske följande avsnitt inte verkar vara en stor affär på grund av det faktum att det finns talrikapplikationer Play Store som lovar att ändra ditt navigeringsfält utan root. Och de fungerar - men många användare rapporterar att dessa appar är buggiga i vissa appar som Chrome, när de spelar helskärmsvideo eller vissa spel. Dessutom kräver många av dessa appar att du aktiverar en tillgänglighetstjänst för att övervaka appar för att veta när du ska färga om navigeringsfältet, vilket kan minska prestandan. Slutligen, om du litar på dessa appar för länge, kan du plötsligt bli förvånad över att se dem sluta fungera när Android O rullas ut eftersom nästa Android-version är dödar förmågan hos dessa appar att rita ovanpå System UI-element.

Metoden som vi använder är baserad på Googles implementering av navbar-tunern, så den har inga av dessa problem. Men det finns ett problem för närvarande som vi vill vara uppmärksamma på: om du väljer att följa den här metoden för att ändra din hemknapp, Ett långt tryck på hemknappen fungerar inte längre vilket innebär att du inte snabbt kan komma åt Google Assistant från hemknappen längre. Om du är okej med det, så här ändrar du ikonerna i navigeringsfältet.

Det första du behöver göra är att ladda ner ikonerna som du vill ersätta dina standard navigeringsknappars ikoner med. Jag kommer att tillhandahålla nedladdningslänkar så att du kan ta tag i Google Pixels navigeringsfältsikoner, men det är upp till dig att hitta dina egna ikoner om du vill ha något annat. Du behöver ikonerna i PNG-format, och vad gäller storleken kan du bestämma storleken på ikonerna du behöver genom att slå upp din enhetens mätvärden för displaydensitet på Material.io och korrelerar det med en ikonstorlek referensdiagram.

Kredit för att extrahera dessa Google Pixel navigeringsfältsikoner går till XDA Senior Member dariomrk. Ladda ner detta arkiv om du har en 1920x1080p visa och den här om du har en 2560x1440p-skärm. Extrahera innehållet i endera zip-filen till en mapp som heter "NavIcons" i rotkatalogen på din lagring.

När du har ikonerna på rätt plats anger du följande ADB-skalkommando (varning, det är långt):

adb shell settings put secure sysui_nav_bar "space, key(4:file:///storage/emulated/0/NavIcons/back.png);key(3:file:///storage/emulated/0/NavIcons/home.png);key(187:file:///storage/emulated/0/NavIcons/recents.png),space"

Vad det här kommandot gör är att ersätta tillbaka-, hem- och senaste nycklar med KeyEvents som har samma funktion. I synnerhet är baksidan ersatt med KEYCODE_BACK, hemmet ersätts med KEYCODE_HOME, och senaste ersätts med KEYCODE_APP_SWITCH. Dessa nyckelkoder utför exakt samma funktion, men eftersom vi använder KeyEvents kan vi specificera vilken ikon vi vill använda för dem. I det här fallet pekar vi mot back.png, home.png och recents.png som vi sparade i /NavIcons.

Men genom att ersätta lagernycklarna med KeyEvents, förlorar vi möjligheten att trycka på hemmet länge eftersom det för närvarande inte finns något sätt att känna igen långa tryckhändelser av simulerade tangentinmatningar.

Jag inser att just nu kanske den här metoden inte verkar idealisk eller lätt att implementera, men när detta skrivs har appen Custom Navigation Bar inte uppdaterats för att stödja att lägga till dina egna ikoner. För närvarande är min metod (vilket är exakt hur den appen fungerar, och när appen uppdateras kommer den att möta samma begränsning) hur du kan få vilka anpassade ikoner du vill ha på din navigeringsfält.


Det var allt för den här handledningen. I framtida handledningar kommer jag att visa upp potentiella praktiska användningsområden för att ändra ditt navigeringsfält, särskilt på ett kontextuellt sätt med en automatiseringsapp som Tasker. Följ tutorials kategori på XDA för att hålla dig uppdaterad med alla de senaste tipsen och tricken som vi publicerar.