Hvordan endre Nav Bar-ikonene eller omorganisere knappene uten rot

click fraud protection

I denne opplæringen vil vi vise deg hvordan du endrer ikonene på navigasjonslinjen eller omorganiserer knappene hvis du kjører Nougat. Ingen rot nødvendig.

De av dere som løper først Android O Developer Preview kan ha lekt med det skjulte tilpasning av navigasjonslinjen plassert i SystemUI Tuner. Denne navbartilpasningen har faktisk eksistert i AOSP i flere måneder, men det ble antatt at den eneste måten å få tilgang til den på Android Nougat var gjennom en modifikasjon av System UI APK, som selvfølgelig vil kreve root-tilgang. Det var først denne uken at vi oppdaget at Android Nougats skjulte navigasjonslinjetilpasning kunne faktisk få tilgang uten å trenge root-tilgang, en tilpasset ROM eller en System UI-mod. Med denne funksjonen kan vi endre navigasjonslinjeikonene, bytte om på tastene eller legge til flere knapper.

Det er riktig - det er mulig å endre navigasjonslinjen på en helt lager, ikke-rootet ROM med en låst oppstartslaster. Funksjonalitet folk trodde var begrenset til Android O er faktisk tilgjengelig for alle som kjører Android Nougat på Nexus, Pixel, OnePlus og noen Sony-, HTC- og Motorola-telefoner. Hvis enheten din kjører programvare som er nær Googles programvare (beklager Samsung- og Huawei/Honor-brukere), er sjansen stor for at enheten din har den skjulte AOSP-navigasjonslinjen som vi kan bruke. I denne opplæringen vil jeg vise deg hvordan du kan bruke tilpasningen av nav-linjen til 

endre knappikonene til hva du vil, eller omorganiser dem i den rekkefølgen du vil.

Google Pixel Nav Bar på Nexus 6

Omvendt navigasjonslinje på Nexus 6

Endre navigasjonslinjen - Oppsett

Krav: Du trenger en enhet som er kompatibel med tilpasning av AOSP-navigasjonslinjen. Se avsnittet "kompatibilitet". i denne tråden. (Merk: din enhets OEM eller type er kanskje ikke oppført i den tråden. Den eneste måten å vite sikkert om enheten din er kompatibel er å prøve den ut, som vi viser deg hvordan du gjør nedenfor.

Det er to måter å endre navigasjonslinjen på. Den ene er med en app, og den andre er gjennom ADB-skallkommandoer (som er hvordan appen fungerer). Vi vil vise deg begge for fullstendighetens skyld, men merk at du for øyeblikket ikke kan endre ikonene for lagernavigasjonslinjen gjennom appen før utvikleren oppdaterer appen sin for å inkludere denne funksjonen.

Det første vi må gjøre er å sørge for at det til og med er mulig å endre navigasjonslinjen på enheten din. Hvis enheten din er en av de som er oppført som kompatible i Egendefinert navigasjonslinjetråd, så er sjansen stor for at det blir det. Vi kan bekrefte ved å gå gjennom den korte opplæringen som følger med denne appen.

Installer appen fra Google Play Store (og også registrere deg for betatesting slik at vi kan bruke dens eksperimentelle funksjon til å omorganisere nav-linjen senere). Deretter åpner du appen og fortsetter gjennom introduksjonsskjermene. Custom Navigation Bar vil be deg om å gi den en viss tillatelse kalt WRITE_SECURE_SETTINGS for å fortsette å bruke appen. Det er to måter du kan gjøre dette på, som det står i søknaden.

  1. Hvis du har en rotfestet enhet, åpne opp Terminalemulator på telefonen og gi den root-tilgang ved å skrive su. Skriv deretter inn denne kommandoen: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Hvis enheten din ikke er forankret, må du gi tillatelsen gjennom ADB. Åpne en ledetekst/terminal på maskinen din, og skriv deretter inn følgende kommando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Når du har gitt appen denne tillatelsen gjennom en av de to metodene ovenfor, vil appen fortsette med en kompatibilitetstest. Hvis nav-linjen ikke endres, er du dessverre uheldig. Hvis navigasjonslinjen endres til å vise en høyre pilknapp, så gratulerer enheten din støttes! Vi kan nå gå videre til å endre navigasjonslinjen.


Omorganisering av Nav Bar-knappene

App metode

Nå som du har satt opp appen, er det veldig, veldig enkelt å omorganisere navigasjonslinjeknappene. Du må være på betatestversjonen av Custom Navigation Bar-appen for å kunne gjøre dette, så gå tilbake og sørg for at du er på betakanalen før du fortsetter.

Hvis du er på betaversjonen, vil du se en seksjon som heter eksperimentelle justeringer i hovedinnstillingsdelen. Trykk på det, og du vil se alternativer som lar deg erstatte de eksisterende nøklene bak, hjemme og nylig. Du kan enkelt omorganisere nøklene dine her ved å få tilbakeknappen til å endre til oversiktsknappen (nylig) og få oversiktsknappen (nylig) til tilbakeknappen. Eller endre dem på den måten du vil, det er ingen reelle begrensninger her. Etter å ha byttet nøklene, kan du også leke med layoutalternativene i innstillingsmenyen for navigasjonslinjen.

ADB metode

Og her er hvordan du gjør det samme ved å bruke ADB-kommandoer, hvis du foretrekker det. Kommandoen som vi skal endre er innstillingen for sikker innstilling kalt sysui_nav_bar. Denne preferansen er en streng som inneholder navigasjonslinjeoppsettet. Standardstrukturen for preferansen er som følger

space, back; home; recent, space

Der mellomrom representerer en tom plass som skiller navigasjonslinjetastene fra hverandre, og tilbake, hjem og nylig representerer de tre standardknappene i navigasjonslinjen. Hvis vi for eksempel ønsker å bytte tilbake og den siste nøkkelen, må vi endre strengen som følger

space, recent; home; back, space

Merk: hvis du prøver å legge inn noen av følgende kommandoer fra et rotet skallmiljø som f.eks Terminal Emulator på telefonen din, så må du utelate "adb shell" fra kommandoene før du sender dem.

Nå, for å faktisk endre denne strengen, må vi bruke ADB shell-kommandoen med denne syntaksen

adb shell settings put secure sysui_nav_bar "STRING"

Derfor vil kommandoen vi sender for å bytte de siste og tilbake-tastene se slik ut

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

Som du kanskje gjetter, er dette ganske fleksibelt. Vi kan flytte nøklene rundt slik vi vil ved å endre strengverdien til preferansen. Vi kan for eksempel gjøre våre snudde navigasjonsfelttaster venstrejustert eller høyrejustert ved å endre hvor de to mellomrommene er plassert:

Venstrejustert:

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

Høyrejustert:

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

Men vi kan også endre navigasjonslinjeknappene til å være noe helt annet enn standard tilbake-, hjem- eller nylige nøkler, for eksempel å sende en av de mange KeyEvents. Vi vil dra nytte av dette faktum i neste seksjon, der vi viser deg hvordan du endrer ikonene på navigasjonslinjeknappene.


Egendefinerte navigasjonslinjeikoner

Nå kan den følgende delen ikke virke som en stor avtale på grunn av det faktum at det er det en rekkeapplikasjoner Play-butikken som lover å endre navigasjonslinjen uten root. Og de fungerer - men mange brukere rapporterer at disse appene er buggy i visse apper som Chrome, når de spiller fullskjermsvideo eller noen spill. Videre krever mange av disse appene at du aktiverer en tilgjengelighetstjeneste for å overvåke apper for å vite når du skal farge navigasjonslinjen på nytt, som kan redusere ytelsen. Til slutt, hvis du stoler på disse appene for lenge, kan du plutselig bli overrasket over å se dem slutte å fungere når Android O ruller ut fordi den neste Android-versjonen er dreper evnen til disse appene å tegne på toppen av System UI-elementer.

Metoden vi bruker er basert på Googles implementering av navbar-tuneren, så den har ingen av disse problemene. Det er imidlertid ett problem for øyeblikket som vi ønsker å være på forhånd om: hvis du velger å følge denne metoden for å endre hjemmeknappen, Langt trykk på Hjem-knappen vil ikke lenger fungere noe som betyr at du ikke kan raskt få tilgang til Google Assistant fra hjemknappen lenger. Hvis du er ok med det, så her er hvordan du endrer ikonene på navigasjonslinjen.

Det første du må gjøre er å laste ned ikonene som du vil erstatte standard navigasjonstastens ikoner med. Jeg gir deg nedlastingskoblinger slik at du kan ta tak i Google Pixel-navigasjonslinjeikonene, men det er opp til deg å finne dine egne ikoner hvis du vil ha noe annet. Du trenger ikonene i PNG-format, og når det gjelder størrelsen, kan du bestemme størrelsen på ikonene du trenger ved å slå opp enhetens skjermtetthetsmålinger på Material.io og korrelerer det med en referansediagram for ikonstørrelse.

Kreditt for å trekke ut disse Google Pixel-navigasjonslinjeikonene går til XDA Senior Member dariomrk. nedlasting dette arkivet hvis du har en 1920x1080p vise og denne hvis du har en 2560x1440p-skjerm. Pakk ut innholdet i en av zip-filene til en mappe kalt "NavIcons" i rotkatalogen til lagringen.

Når du har ikonene på riktig sted, skriv inn følgende ADB-skallkommando (advarsel, den er lang):

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"

Det denne kommandoen gjør er å erstatte tilbake-, hjem- og nylige nøkler med KeyEvents som gjør samme funksjon. Spesielt tilbake er erstattet med KEYCODE_BACK, hjem er erstattet med KEYCODE_HOME, og siste er erstattet med KEYCODE_APP_SWITCH. Disse nøkkelkodene utfører nøyaktig samme funksjon, men fordi vi bruker KeyEvents, kan vi spesifisere hvilket ikon vi vil bruke for dem. I dette tilfellet peker vi mot back.png, home.png og recents.png som vi lagret i /NavIcons.

Men ved å erstatte aksjenøklene med KeyEvents, mister vi evnen til å trykke langt hjemme fordi det for øyeblikket ikke er noen måte å gjenkjenne langtrykkshendelser av simulerte tasteinnganger.

Jeg innser at akkurat nå virker denne metoden kanskje ikke ideell eller enkel å implementere, men i skrivende stund har Custom Navigation Bar-appen ikke blitt oppdatert for å støtte å legge til dine egne ikoner. Foreløpig er metoden min (som er nøyaktig hvordan den appen fungerer, og når appen blir oppdatert, vil den møte den samme begrensningen) hvordan du kan få de tilpassede ikonene du vil ha på navigasjonslinjen.


Det var alt for denne opplæringen. I fremtidige opplæringsprogrammer vil jeg vise frem potensielle praktiske bruksområder for å endre navigasjonslinjen, spesielt på en kontekstuell måte ved å bruke en automatiseringsapp som Tasker. Følg opplæringskategori på XDA for å holde deg oppdatert med alle de siste tipsene og triksene vi publiserer.