Navigointipalkin kuvakkeiden vaihtaminen tai painikkeiden uudelleenjärjestely ilman juuria

Tässä opetusohjelmassa näytämme, kuinka voit muuttaa navigointipalkin kuvakkeita tai järjestää painikkeita uudelleen, jos käytät Nougatia. Ei juuri tarvita.

Ne teistä, jotka juoksevat ensimmäisenä Android O -kehittäjän esikatselu on saattanut leikkiä sen piilossa navigointipalkin mukauttaja sijaitsee SystemUI Tunerissa. Tämä navigointipalkin mukautustoiminto on itse asiassa ollut käytössä AOSP: ssä kuukausia, mutta ajateltiin, että ainoa tapa käyttää sitä Android Nougatissa oli järjestelmän käyttöliittymän APK: n muutos, mikä tietysti vaatisi pääkäyttäjän oikeudet. Vasta tällä viikolla huomasimme, että Android Nougatin piilotettu navigointipalkin mukautustoiminto voi itse asiassa käyttää ilman pääkäyttäjän oikeuksia, mukautettua ROM-muistia tai järjestelmän käyttöliittymää. Tämän ominaisuuden avulla voimme muuttaa navigointipalkin kuvakkeita, vaihtaa näppäimiä tai lisätä muita painikkeita.

Aivan oikein - on mahdollista muokata navigointipalkkia täysin varastossa olevalla, juurruttamattomalla ROM: illa, jossa on lukittu käynnistyslatain. Toiminnallisuus, jonka ihmiset uskoivat rajoittuvan Android O: han, on itse asiassa kaikkien käytettävissä, jotka käyttävät Android Nougatia Nexus-, Pixel-, OnePlus- ja joissakin Sony-, HTC- ja Motorola-puhelimissa. Jos laitteessasi on ohjelmisto, joka on lähellä Googlen ohjelmistoa (pahoittelut Samsungin ja Huawein/Honorin käyttäjiltä), laitteessasi on todennäköisesti piilotettu AOSP-navigointipalkin mukautustoiminto, jota voimme käyttää. Tässä opetusohjelmassa näytän sinulle, kuinka voit käyttää navigointipalkin mukauttajaa 

muuta painikkeiden kuvakkeet haluamaksesi tai järjestä ne uudelleen haluamaasi järjestykseen.

Google Pixel Nav Bar Nexus 6:ssa

Käänteinen navigointipalkki Nexus 6:ssa

Navigointipalkin muokkaaminen - Asennus

Vaatimukset: Tarvitset laitteen, joka on yhteensopiva AOSP-navigointipalkin mukauttajan kanssa. Katso kohta "yhteensopivuus". tässä ketjussa. (Huomaa: laitteesi OEM tai tyyppi ei ehkä ole luettelossa kyseisessä säikeessä. Ainoa tapa tietää varmasti, onko laitteesi yhteensopiva, on kokeilla sitä, minkä opastamme alla.

Navigointipalkkia voi muokata kahdella tavalla. Toinen on sovelluksen kanssa ja toinen ADB-kuorikomentojen kautta (näin sovellus toimii). Näytämme sinulle molemmat täydellisyyden vuoksi, mutta huomaa, että tällä hetkellä et voi muokata varastossa olevia navigointipalkin kuvakkeita sovelluksen kautta, ennen kuin kehittäjä päivittää sovelluksensa sisältämään tämän ominaisuuden.

Ensimmäinen asia, joka meidän on tehtävä, on varmistaa, että laitteesi navigointipalkkia on jopa mahdollista muokata. Jos laitteesi on yksi luettelossa yhteensopivaksi luetelluista Mukautettu navigointipalkin säie, niin todennäköisesti se on. Voimme varmistaa suorittamalla tämän sovelluksen mukana tulevan lyhyen opetusohjelman.

Asenna sovellus Google Play Kaupasta (ja myös ilmoittautua beta-testaukseen jotta voimme käyttää sen kokeellista ominaisuutta navigointipalkin järjestämiseen uudelleen myöhemmin). Avaa seuraavaksi sovellus ja jatka esittelyruutujen läpi. Mukautettu navigointipalkki pyytää sinua myöntämään sille tietyn luvan nimeltä WRITE_SECURE_SETTINGS, jotta voit jatkaa sovelluksen käyttöä. Voit tehdä tämän kahdella tavalla, kuten hakemuksessa kerrotaan.

  1. Jos sinulla on juurtunut laite, avaa se Pääte-emulaattori puhelimessasi ja anna sille pääkäyttäjän oikeudet kirjoittamalla su. Kirjoita sitten tämä komento: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Jos laitteesi ei ole juurtunut, sinun on myönnettävä lupa ADB: n kautta. Avaa koneellesi komentokehote/pääte ja kirjoita seuraava komento: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Kun olet myöntänyt sovellukselle tämän luvan jommallakummalla yllä olevista tavoista, sovellus suorittaa yhteensopivuustestin. Jos navigointipalkki ei muutu, olet valitettavasti epäonninen. Jos navigointipalkki muuttuu näyttämään oikealle osoittavaksi nuolipainikkeeksi, onnittelut, että laitettasi tuetaan! Voimme nyt siirtyä navigointipalkin muokkaamiseen.


Navigointipalkin painikkeiden järjesteleminen uudelleen

Sovellusmenetelmä

Nyt kun olet määrittänyt sovelluksen, navigointipalkin painikkeet on erittäin helppo järjestää uudelleen. Sinun on oltava Custom Navigation Bar -sovelluksen betatestausversiossa, jotta voit tehdä tämän, joten palaa takaisin ja varmista, että olet beta-kanavalla ennen kuin jatkat.

Jos käytät beta-versiota, näet osion nimeltä kokeellisia säätöjä Asetukset-osiossa. Napauta sitä ja näet vaihtoehtoja, joiden avulla voit korvata nykyiset paluu-, koti- ja viimeisimmät avaimet. Voit helposti järjestää näppäimet uudelleen tässä antamalla Takaisin-painikkeen muuttuvan yleiskuvauspainikkeeksi (viimeksi) ja yleiskuvauspainikkeen (viimeksi) takaisin-painikkeeksi. Tai muuta niitä haluamallasi tavalla, tässä ei ole todellisia rajoituksia. Kun olet vaihtanut avaimet, voit myös leikkiä asetteluvaihtoehdoilla navigointipalkin asetusvalikossa.

ADB-menetelmä

Ja tässä on kuinka tehdä sama käyttämällä ADB-komentoja, jos haluat niin. Muokattava komento on Secure-asetusasetus nimeltä sysui_nav_bar. Tämä asetus on merkkijono, joka sisältää navigointipalkin asettelun. Asetuksen oletusrakenne on seuraava

space, back; home; recent, space

Välilyönti tarkoittaa tyhjää tilaa, joka erottaa navigointipalkin näppäimet toisistaan, ja Takaisin, Koti ja Viimeinen edustavat kolmea navigointipalkin oletuspainiketta. Jos haluamme vaihtaa esimerkiksi taka- ja viimeaikaisen avaimen, meidän on muokattava merkkijonoa seuraavasti

space, recent; home; back, space

Huomautus: jos yrität kirjoittaa mitä tahansa seuraavista komennoista juurtuneesta shell-ympäristöstä, kuten Pääte-emulaattori puhelimessasi, sinun on jätettävä "adb shell" pois komennoista ennen lähettämistä niitä.

Nyt, jotta voimme todella muokata tätä merkkijonoa, meidän on käytettävä ADB-kuorikomentoa tällä syntaksilla

adb shell settings put secure sysui_nav_bar "STRING"

Siksi komento, jonka lähetämme vaihtaaksesi viimeksi ja takaisin -näppäimet, näyttäisi tältä

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

Kuten arvata saattaa, tämä on melko joustava. Voimme siirtää näppäimiä haluamallamme tavalla muokkaamalla asetuksen merkkijonoarvoa. Voimme esimerkiksi tehdä käännetyt navigointipalkin näppäimet vasemmalle tai oikealle vaihtamalla kahden välilyönnin sijaintia:

Vasemmalle tasattu:

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

Oikealla perusteltu:

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

Mutta voimme myös muuttaa navigointipalkin painikkeet täysin erilaisiksi kuin tavalliset paluu-, koti- tai viime näppäimet, kuten lähettää yhden monista Avaintapahtumat. Hyödynnämme tätä tosiasiaa seuraavassa osiossa, jossa näytämme, kuinka voit muuttaa navigointipalkin painikkeiden kuvakkeita.


Mukautetut navigointipalkin kuvakkeet

Nyt seuraava osio ei ehkä vaikuta valtavalta kaupalta, koska niitä on lukuisiasovelluksetpäällä Play Kauppa, joka lupaa muuttaa navigointipalkin ilman pääkäyttäjää. Ja ne toimivat – monet käyttäjät kuitenkin ilmoittavat, että nämä sovellukset ovat bugiisia tietyissä sovelluksissa, kuten Chrome, toistettaessa koko näytön videota tai joissakin peleissä. Lisäksi monet näistä sovelluksista edellyttävät, että otat käyttöön esteettömyyspalvelun, jotta voit valvoa sovelluksia tietääkseen, milloin navigointipalkki on värjättävä uudelleen. voi heikentää suorituskykyä. Lopuksi, jos luotat näihin sovelluksiin liian kauan, saatat yhtäkkiä yllättyä nähdessäsi niiden lakkaa toimimasta, kun Android O tulee markkinoille, koska seuraava Android-versio on tappaa näiden sovellusten kyvyt piirtää järjestelmän käyttöliittymän elementtien päälle.

Käyttämämme menetelmä perustuu Googlen navigointipalkin virittimen toteuttamiseen, joten siinä ei ole mitään näistä ongelmista. Tällä hetkellä on kuitenkin yksi ongelma, johon haluamme kertoa etukäteen: jos päätät muokata kotipainikettasi tällä menetelmällä, Kotipainikkeen pitkä painallus ei enää toimi eli et voi enää käyttää Google Assistantia nopeasti kotipainikkeella. Jos olet tyytyväinen, voit muuttaa navigointipalkin kuvakkeita seuraavasti.

Ensimmäinen asia, joka sinun on tehtävä, on ladata kuvakkeet, joilla haluat korvata oletusnavigointipalkin näppäinten kuvakkeet. Tarjoan latauslinkkejä, joiden avulla voit napata Google Pixel -navigointipalkin kuvakkeet, mutta sinun on löydettävä omat kuvakkeet, jos haluat jotain muuta. Tarvitset kuvakkeet PNG-muodossa, ja koon osalta voit määrittää tarvitsemiesi kuvakkeiden koon etsimällä laitteen näytön tiheysmittarit Material.io-sivustolla ja korreloi sen kanssa kuvakkeen koon viitetaulukko.

Hyvitys näiden Google Pixel -navigointipalkin kuvakkeiden purkamisesta menee XDA: n vanhemmalle jäsenelle dariomrk. ladata tämä arkisto, jos sinulla on 1920x1080p näyttö ja tämä, jos sinulla on 2560x1440p-näyttö. Pura kumman tahansa zip-tiedoston sisältö kansioon nimeltä "NavIcons" tallennustilan juurihakemistossa.

Kun kuvakkeet ovat oikeassa paikassa, kirjoita seuraava ADB-kuorikomento (varoitus, se on pitkä):

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"

Tämä komento korvaa paluu-, koti- ja viime näppäimet KeyEvents-näppäimillä, jotka tekevät saman toiminnon. Erityisesti takaosa korvataan KEYCODE_BACK, koti korvataan KEYCODE_HOME, ja viimeisin korvataan sanalla KEYCODE_APP_SWITCH. Nämä avainkoodit suorittavat täsmälleen saman toiminnon, mutta koska käytämme KeyEventsiä, voimme määrittää, mitä kuvaketta haluamme käyttää niille. Tässä tapauksessa osoitamme kohtia back.png, home.png ja hiljutis.png, jotka olemme tallentaneet /NavIcons-kansioon.

Kuitenkin korvaamalla varastonäppäimet KeyEventsillä menetämme pitkän painalluksen kotitoiminnon, koska tällä hetkellä ei ole mahdollista tunnistaa simuloitujen näppäinsyöttöjen pitkän painalluksen tapahtumia.

Ymmärrän, että tällä hetkellä tämä menetelmä ei ehkä vaikuta ihanteelliselta tai helpolta toteuttaa, mutta tätä kirjoitettaessa mukautettua navigointipalkkisovellusta ei ole päivitetty tukemaan omien kuvakkeiden lisäämistä. Toistaiseksi menetelmäni (joka on täsmälleen kuinka sovellus toimii, ja kun sovellus päivitetään, se kohtaa saman rajoituksen) on se, kuinka voit saada haluamasi mukautetut kuvakkeet navigointipalkkiin.


Siinä se tälle opetusohjelmalle. Tulevissa opetusohjelmissa esittelen mahdollisia käytännön käyttötapoja navigointipalkin muuttamiseen, erityisesti kontekstuaalisesti käyttämällä automaatiosovellusta, kuten Tasker. Seuraa XDA: n opetusohjelmien luokka pysyäksesi ajan tasalla kaikista julkaisemistamme uusimmista vinkeistä ja temppuista.