QR kód beolvasás Zebra Android eszközökkel
Nyomon követés céljából a kinyomtatott címkékre QR kód is gyakran rákerül, és ennek beolvasására android eszközök esetén két módszert is lehet alkalmazni. Az egyikhez szinte bármilyen androidos eszköz megfelel, a másikhoz viszont speciális hardverre van szükség, amely beépített lézeres QR kód olvasóval rendelkezik. Hogyan gyorsítja meg a beépített QR kód leolvasó a folyamatot, és hogyan zajlik az integrációja? Cikkünkben erről lesz szó
Hogyan támogatja a munkádat a beépített QR kód olvasó?
Ahogy arra cikksorozatunk első részében is rámutattunk, nyomon követés céljából a kinyomtatott címkékre QR kód is gyakran rákerül. A legelterjedtebb módszer QR kód vagy vonalkód olvasására az eszköz kamerájának a használata. Nagyon sok könnyen integrálható és jól használható megoldás létezik, amelyet függőségként hozzá tudunk adni a kód bázishoz és pár sor kód árán, máris tudunk QR kódot olvasni az eszköz kamerájával. Talán a legelterjedtebb ilyen library a journeyapp által fejlesztett zxing névre hallgat. Ha nem szeretnénk egy újabb függőséget behúzni, akkor saját magunk is megírhatjuk, attól függően, hogy mennyire vagyunk otthon a témában, és az adott projekt keretei megengedik-e. Az esetek nagy részében érdemes dependenciaként behúzni.
Vannak viszont olyan android eszközök, amelyek rendelkeznek beépített lézeres QR kód leolvasóval. A legtöbb Zebra eszköz ilyen. Ennek nagy előnye, hogy nem kell az eszköz kamerájára támaszkodni, ami számottevően gyorsíthatja a beolvasás sebességét. Gondoljunk csak arra, a kamera használatához a megfelelő engedélyeket is el kell kérni a felhasználótól - igaz, csak első használat esetén. Tehát ha az eszközbe épített QR kód olvasót egy fizikai gombbal aktiváljuk, akár pár másodperc alatt megkapjuk a beolvasott kódot, mivel maga a beolvasás is lényegesebben gyorsabb a pont erre a célra kifejlesztett olvasóval. Egy beépített olvasó 1-2 másodperc alatt elvégzi azt a feladatot, ami egy kamerával történő beolvasás esetén 5-10 másodpercet venne igénybe. Ez pedig napi 1000 QR kód beolvasása esetén már komoly időmegtakarítást jelenthet.
A QR kód olvasás folyamata
Ha megnyomjuk az eszközön a fizikai gombot, amely aktiválja a QR kód leolvasót, akkor a lézert csak a QR kódra kell irányítani, és meg is történik a beolvasás. A kérdés csak az, hogyan kapjuk meg a beolvasott QR kódot? Erre a legegyszerűbb megoldás a Zebra eszközökre jellemzően előre telepített (a Google Play-ből amúgy bármikor letölthető) DataWedge alkalmazás használata.
Miután összekötöttünk a DataWedge appot a saját appunkkal, a helyes konfigurációk megadása után egy Intent elkapása árán már ki is tudjuk bányászni a beolvasott QR kódot az intent-ben lévő Bundle-ből. Az integráció folyamata a következők szerint zajlik.
DataWedge konfigurálás
Az alkalmazás megnyitása után ez a kép fogad minket.
Itt különböző profilok láthatóak. Nekünk is egy ilyen profilra lesz szükségünk. Tehetjük azt, hogy lemásoljuk az egyik meglévőt, vagy teljesen újat hozunk létre.
Ebben a példában egy újat fogunk létrehozni.
Miután létrehoztuk az új profilt, nyissuk meg.
Itt az első dolgunk, hogy összekössük azt a saját appunkkal. Nyissuk meg az “Associated apps” menüt. Majd a “New app/activity” option kiválasztása után a megnyíló listából keressük ki azt az Activity-t, amelyben szeretnénk elkapni a beolvasott QR kódot.
Miután ezt megtettük, navigáljunk vissza, és görgessünk le az “Intent output” szekcióig. Itt a következő beállításokat adjuk meg.
Mindenekelőtt engedélyezzük az “Enabled” flaget. Majd adjuk meg az intent action-t, ami a jelen példában: com.demo.app.myActionName.ACTION. Ezt fogjuk majd hozzáadni az activity-hez a manifest fájlban intent filterként.
Ha több activity-t is össze akarunk kötni a DataWedge-el, akkor mindegyikhez új profilt és intent action-t kell felvennünk. Ha több fragment architektúrára épül az alkalmazásunk - ami manapság igen gyakori -, akkor ilyenre nem lesz szükségünk.
Érdemes tudni, hogy lehetőség van Broadcast intent küldésére is.
Miután a fenti dolgokkal megvagyunk, nézzük meg a saját kódbázisunkat.
Módosítások a kódbázisban
Első dolgunk a manifest-ben, hogy az intent filter-t hozzáadjuk az activity-hez.
Ügyeljünk rá, hogy az action-t ne írjuk el, továbbá a DataWedge ben is megadott activity-re rakjuk rá az intent filtert.
Ezután nincs már más hátra, mint elkapni az intent-et.
Ahogy a fenti kódrészletből is látszik, az onNewIntent() metódus hozzáadása szükséges ahhoz, hogy a kapott intent-ből kiszedjük a string extra-ban lévő QR kódot.
A DataWedgeHelper-ben látható többi string a QR kód olvasás intent-el történő elindításához és leállításához használható a következő módon.
Ahogy látható, az integráció során olyan sok kódot nem kellett írnunk, inkább arra kell figyelni, hogy pontosan adjuk meg a profil konfigurációját a DataWedge-ben.
Ismerd meg hogyan támogatta a Zebra ökoszisztéma az app fejlesztéseinket cimkenyomtatás, Kiosk mód, offline működés, illetve PDF generálás esetén!