ons blog

Barcode Crossing

Barcodering op Android

zxing_zebra_logo
Die meeste van die tyd wanneer werknemers by Telaeris hier publiseer, is dit vir werklike voorbeelde wat verband hou met ons produkte. Dit stel ons in staat om 'n wye gebied van onderwerpe te bespreek, insluitend barcodes en RFID gebruik, implementering van sekuriteits- of veiligheidssisteem of wenke oor die bestuur van 'n besigheid. Maar in die hart van wat ons doen, is om vorendag te kom netjiese oplossings vir moeilike probleme. Die volgende paar inskrywings is voorbeelde van hoe twee stagiairs by Telaeris begin het om 'n gratis nuwe mobiele produk te skep vir die dop van barcodes en RFID-etikette van jou Android- of iPhone-mobiele toestel. Die stelsel word genoem DataLockr en is pas geloods - ek beveel jou aan om die app en die stelsel na te gaan. Wat hulle beskryf in hierdie artikel, is hul eerste stappe van hoe om 'n eenvoudige barcode-leesprogram te bou deur die open source Zxing-biblioteek vir Android te gebruik.

Hierdie blog is vir die hackers daar buite wat graag kodeer. Geniet dit!

Implementeer 'n vereenvoudigde Zxing-biblioteek
Terwyl ons gaan deur die proses om te leer hoe om die ZXing biblioteek, het ons gou agtergekom dat dit 'n bietjie lastig was om te probeer verstaan ​​wat aangaan in hierdie groot biblioteek. Daar was baie tutoriale daar buite, maar baie van die stappe het ons verwar of verouder. Daar was dinge wat van die kode ontbreek, of dinge wat anders was op grond van die biblioteek-weergawe of iets is nie ten volle verduidelik nie. Ons wou 'n handleiding maak wat iemand help om 'n eenvoudige Zxing-skanderingbiblioteek te implementeer, 'n vinnige begin kry om dit binne hul eie aansoek te gebruik.

Hierdie handleiding gebruik 'n verskeurde weergawe van Zxing-biblioteek om die basiese beginsels van hoe om die biblioteek in 'n selfstandige program te implementeer en jou eie inheemse Android-program te implementeer, te leer. Ons gebruik die Android Development Kit wat die SDK 19, Android 4.4 biblioteek gebruik. Die biblioteek is aangepas om 'n portretmodus strepieskandeerder eerder as die standaard horisontale oriëntasie te wees.

U kan ons vereenvoudigde weergawe van die Zxing-biblioteek aflaai om hier te gebruik en te toets: CaptureActivity. Dit is anders as die vrygelate ZXing-biblioteek, maar is goed om jou te begin.

As jy nie Eclipse met die Android SDK het nie, laai en installeer die Android Development Kit. Maak die Android SDK oop en installeer die nodige komponente. Volgende, open Eclipse.

Stap 1. Eerstens sal ons die projek skep.

Gaan na die boonste spyskaart Lêer -> nuut -> Android Aansoek Projek. Noem jou projek (ons het ons sogenaamde "Scanner App" genoem). Kopieer die instellings hieronder en klik op die volgende 3 keer tot die bladsy Aktiwiteit skep. Kies Leë Aktiwiteit en klik dan op Voltooi. Die gids sal as standaard aan die linkerkant van die skerm verskyn. Indien nie, klik die knoppie maksimum om die projekskerm in Eclipse oop te maak.

Barcode Crossing

Stap 2. Stel temafoute reg (as jy nie enige het nie, slaan oor na stap 3)

As u foute in u waardesvouers het, kan dit 'n Eclipse-probleem wees. Maak al die style.xml-bladsye oop en verwyder alle style-etikette en die inhoud daarvan. Gaan ook na jou AndroidManifest.xml en verwyder die Android: tema = "@ style / AppTheme" onder aansoek.

Stap 3. Volgende is die invoer van die scanner biblioteek.

As jy nog nie het nie, laai asseblief die CaptureActivty-pos hierbo. Gaan na Lêer -> Invoer -> Voer bestaande Android-kode in in Workspace -> en maak oop blare en vind die bronkode van Zxing wat jy afgelaai het. Gaan net die eerste projek genaamd CaptureActivity. Die pad moet nie bou / daarin bevat nie. Kliek af. Regskliek op die / CaptureActivity / Folder in Pakket Explorer en klik eienskappe -> Android en maak seker dat die boks 'Is Biblioteek' gekontroleer is. Klik ok.

Stap 4. Ons moet nou ons program koppel met die skandeerder biblioteek.

Klik regs op jou Android-programmap en klik dan op eienskappe -> Android. Klik op die voeg knoppie en klik op CaptureActivity. Maak seker dat 'n groen vinkje verskyn nadat jy OK op die Android-skerm gekliek het met die projek Skandeerder. Klik ok.

Stap 5. Ons kan nou begin om die skandeerder in ons aansoek te implementeer. Begin met mainActivity.java lêer.

Gaan na in jou programmap / Src / gids en maak jou mainActivity.java lêer. Hieronder is die kode benodig. Kopieer en plak wat jy nie het nie. Die kode wat u moet byvoeg, sal in rooi teks wees. As u foute kry, sal u sekere klasse moet invoer. jy kan net ctrl + shift + O druk, en al die nodige invoer sal ingevoer word.



pakket com.example.scannerapp; invoer android.app.Activity; invoer android.content.Intent; invoer android.os.Bundle; invoer android.view.Menu; invoer android.view.View; invoer android.widget.Toast; openbare klas MainActivity brei Aktiwiteit uit {@Overtrap beskermde leemte opCreate (Bundel geredEnstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (Menu menu) {/ / Inflate the menu; dit voeg items by die aksiebalk as dit teenwoordig is. getMenuInflater (). inflate (R.menu.main, menu); terugkeer waar; } P ublic void openScanner (Bekyk aansig) {Intent intention = new Intent ("com.example.scannerapp.SCAN"); beginActivityForResult (bedoeling, 0000); } publieke leemte opActivityResult (int requestCode, int resultCode, Intent intent) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (hierdie, inhoud, 0) .show (); } anders as (resultCode == RESULT_CANCELED) {// Hanteer kansellasie}}} } 

Daar is twee sleutel funksies:

  1. Die openScanner-metode loop wanneer 'n knoppie gedruk word, en sal dan die Skandeerder oopmaak.
  2. Die metode OnActivityResult gee die string van die strepieskode weer. Van hieruit kan jy 'n nuwe voorneme oopmaak en in veranderlikes slaag as jy 'n ander skerm na jou skandering wil vertoon.

Stap 6.Ons sal nou die uitleg in aktiwiteit_main.xml-lêer verander.

Nou in jou / Artikels / gids, gaan na die res gids -> uitleg -> activity_main.xml lêer. Dit moet soos volg lyk. Voeg die volgende rooi kode by:


<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "@dimension / activity_horent_margin" android: paddingLev = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical_margin" gereedskap: konteks = ". MainActivity "> <Button android: id =" @ + id / button0000 "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: layout_below =" @ + id / textView0000 "android: layout_centerHorizontal =" ware "Android: layout_marginTop = "1dp" android: text = "Scan" android: onClick = "openScanner" /> </ RelativeLayout>

Dit voeg 'n knoppie by, en wanneer dit gedruk word, sal die metode openScanner uit die mainActivity.java lêer. Jy moet dalk ook 'n tema kies. Ek het Theme.holo gekies.

Stap 7. Die laaste wysiging is om die androidManifest.xml-lêer te wysig.

Gaan na die AndroidManifes.xml lêer onder die projek gids. Die kode moet soos volg lyk en weer die rooi kode kopieer



<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.scannerapp" android : versionCode = "1" android: versionName = "1.0"> <uses-sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - TOELATINGS VEREIS DEUR ZXING -> <uses-permission android : name = "android.permission.CAMERA" /> <gebruik-toestemming android: name = "android.permission.INTERNET" /> <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! FUNKSIES VEREIS DEUR ZXING -> <gebruik-funksie android: name = "android.hardware.camera" android: required = "true" /> <gebruik-funksie android: name = "android.hardware.touchscreen" android: required = enroid : required = "false" /> <application android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme"> <aktiwiteit android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / app_name "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <kategorie android: name =" android.intent.category.LAUNCHER " /> </ intent-filter> </ activity> <aktiwiteit android: name = "com.telaeris.datalockrScanner.android.CaptureActivity" android: screenOrientation = "portret" android: configChanges = "orientation | keyboardHidden" android: theme = " @android: style / Theme.NoTitleBar.Fullscreen "android: windowSoftInputMode =" stateAlwaysHidden "> <intent-filter> <action android: name =" android.intent.category.MAIN "/> <kategorie android: name =" android. intent.category.LAUNCHER "/> </ intent filter> <intent filter> <action android: name =" com.example.scannerapp.SCAN "/> <kategorie android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

Ons voeg toestemmings toe wat Android vereis om die kamera te gebruik en aktiwiteite in die aansoek te bevat om te weet watter lêers oopmaak wanneer ons die skandeerder op die toestel wil oopmaak.

Stap 8. Alles klaar!

Jy behoort nou jou program op 'n toestel te kan opstel en hardloop. As daar enige samestellerfoute is, kan u die projek skoonmaak en / of herbegin verduistering.


Dankie, jy is
Hierdie blog verskuldig groot dankie aan baie mense:

  • Alberto Landaverde, wat met die Telaeris-somer van 2012 ingeënt is, wat die Zxing-biblioteek verander het en die aanvanklike vereenvoudigde biblioteek gebou het.
  • Kelly Lim, huidige Telaeris-intern, wat hierdie biblioteek geneem het en verder beweeg het om die DataLockr Android-program. Kelly het ook die inhoud van hierdie blog geskryf.
  • Jake Pham, huidige Telaeris-intern, wat deur die tutoriaal gegaan het om seker te maak dat alles werk soos geadverteer.

Bly ingeskakel vir die volgende paaiement waar ons bespreek hoe om die ZXing-biblioteek-skandering in beide portret- en landskapmodusse te maak. En as jy tyd het, kyk na die produk van al hul pogings - DataLockr.

DataLockrLogo
Wees gesien. Word geskandeer. Word gedeel.

Laat 'n boodskap

*

Blog-opdaterings

Aankondigings


praat met &#39;n verteenwoordiger

Kontak Ons

Telefoon: 858-627-9700
Faks: 858-627-9702
-------------------------------
9123 Chesapeake Dr.
San Diego, CA 92123
-------------------------------
sales@telaeris.com