ang aming blog

Barcode Crossing

Barcoding sa Android

zxing_zebra_logo
Karamihan sa mga oras kapag ang mga empleyado sa Telaeris publish dito, ito ay para sa mga halimbawa ng tunay na buhay na may kaugnayan sa aming mga produkto. Ito ay nagpapahintulot sa amin upang talakayin ang isang malawak na lugar ng mga paksa, kabilang ang mga barcode at RFID paggamit, seguridad o pagpapatupad ng sistema ng kaligtasan o mga tip sa pagpapatakbo ng isang negosyo. Ngunit sa puso ng kung ano ang ginagawa namin ay upang makabuo ng malinis na solusyon para sa mga nakakalito problema. Ang mga susunod na ilang entry sa blog ay mga halimbawa kung paano nagsimula ang dalawang interns sa Telaeris ng isang libreng bagong produkto ng mobile para sa mga barcode sa pagsubaybay at mga tag ng RFID mula sa iyong Android o iPhone mobile device. Ang sistema ay tinatawag na DataLockr at inilunsad na lang - lubos kong pinapayo na tingnan mo ang app at system. Ang kanilang inilalarawan sa artikulong ito ay ang kanilang unang mga hakbang kung paano bumuo ng isang simpleng pagbabasa ng barcode app gamit ang open source Zxing library para sa Android.

Ang blog na ito ay para sa mga hacker out doon na gusto sa code. Enjoy!

Pagpapatupad ng pinasimple na Zxing Library
Habang ginagawa namin ang proseso ng pag-aaral kung paano gamitin ang Zxing library, nalaman namin sa lalong madaling panahon na ito ay isang maliit na mahirap na sinusubukan upang maunawaan kung ano ang nangyayari sa malaking library na ito. Maraming mga tutorial out doon, ngunit maraming mga hakbang alinman sa nalilito sa amin o ay lipas na sa panahon. May mga bagay na nawawala mula sa code, o mga bagay na naiiba batay sa bersyon ng aklatan o isang bagay ay hindi ganap na linawin. Nais naming gumawa ng isang tutorial na makakatulong sa sinuman na sinusubukang ipatupad ang isang simpleng library ng pag-scan ng Zxing makakuha ng isang mabilis na pagsisimula sa paggamit nito sa loob ng kanilang sariling application.

Ang tutorial na ito ay gumagamit ng isang napunit na bersyon ng Zxing library upang maituro ang mga pangunahing kaalaman kung paano ipatupad ang library sa isang nakapag-iisang app at i-deploy ang iyong sariling native na Android app. Ginagamit namin ang Android Development Kit na tumatakbo sa SDK 19, Android 4.4 library. Ang library ay binago upang maging isang portrait mode barcode scanner sa halip pagkatapos ay ang default na pahalang na orientation.

Maaari mong i-download ang aming pinasimple na bersyon ng library ng Zxing upang gamitin at subukan dito: CaptureActivity. Ito ay naiiba kaysa sa inilabas na library ng ZXing, ngunit mabuti para makapagsimula ka.

Kung wala kang Eclipse sa Android SDK, i-download at i-install ang Android Development Kit. Buksan ang Android SDK at i-install ang mga kinakailangang bahagi. Susunod, bukas ang Eclipse.

Hakbang 1. Una naming lilikha ang proyekto.

Pumunta sa tuktok na menu File -> new -> Android Application Project. Pangalanan ang iyong proyekto (tinatawag namin ang aming "Scanner App"). Kopyahin ang mga setting sa ibaba at i-click ang susunod na 3 beses hanggang sa lumikha ng pahina ng Aktibidad. Piliin ang Empty Activity at i-click ang susunod pagkatapos Tapusin. Ang folder ay lilitaw sa kaliwang bahagi ng screen bilang default. Kung hindi, i-click ang maximize button upang buksan ang screen ng proyekto sa Eclipse.

Barcode Crossing

Hakbang 2. Ayusin ang mga error sa tema (kung wala kang anumang, laktawan sa hakbang 3)

Kung nagkakaroon ka ng mga pagkakamali sa iyong mga folder ng halaga, maaaring ito ay isang isyu ng Eclipse. Buksan ang lahat ng mga pahina ng style.xml at tanggalin ang lahat ng mga tag ng estilo at mga nilalaman nito. Pumunta rin sa iyong AndroidManifest.xml at tanggalin ang android: theme = "@ style / AppTheme" sa ilalim ng application.

Hakbang 3. Susunod ay upang i-import ang library ng scanner.

Kung hindi ka pa, mangyaring i-download ang CaptureActivty zip sa itaas. Pumunta sa File -> Mag-import -> Mag-import ng Umiiral na Code ng Android sa Workspace -> at buksan ang pag-browse at hanapin ang source code ng Zxing na iyong na-download. Suriin lamang ang unang proyekto na tinatawag CaptureActivity. Ang path ay hindi dapat maglaman ng build / sa loob nito. I-click ang tapusin. Right click ang / CaptureActivity / Folder sa Package Explorer na tab at i-click Mga katangian -> Android at tiyaking naka-check ang check box na "Ay Library". I-click ang ok.

Hakbang 4. Kailangan namin ngayon ikonekta ang aming app sa scanner library.

I-right click ang folder ng iyong Android app at pagkatapos ay mag-click sa Mga katangian -> Android. Mag-click sa pindutan ng add, at mag-click sa CaptureActivity. Tiyaking lilitaw ang berde check mark matapos mong i-click ang okay sa screen ng Android gamit ang Scanner ng proyekto. I-click ang ok.

Hakbang 5. Maaari na namin ngayong simulan ang pagpapatupad ng scanner sa aming application. Magsimula sa mainActivity.java na file.

Sa folder ng iyong app, pumunta sa / src / folder at buksan ang iyong mainActivity.java file. Sa ibaba ay kailangan ang code. Kopyahin at idikit ang wala sa iyo. Ang code na kakailanganin mong idagdag ay nasa pulang teksto. Kung nakakakuha ka ng mga error, kakailanganin mong mag-import ng mga partikular na klase. maaari mo lamang pindutin ang ctrl + shift + O, at ang lahat ng kinakailangang pag-import ay mai-import.



package com.example.scannerapp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Toast; pampublikong klase MainActivity nagpalawak ng Aktibidad {@Override protektado ng walang bisa onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override pampublikong boolean saCreateOptionsMenu (Menu ng menu) {/ Magpapalaglag sa menu; ito ay nagdaragdag ng mga item sa action bar kung ito ay naroroon. getMenuInflater (). inflate (R.menu.main, menu); bumalik totoo; } p ublic void openScanner (View view) {Intent intent = new Intent ("com.example.scannerapp.SCAN"); startActivityForResult (layunin, 0000); } public void onActivityResult (int requestCode, int resultCode, Intent intent) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (ito, mga nilalaman, 0) .show (); } else if (resultCode == RESULT_CANCELED) {// Handle cancel}}} } 

Mayroong dalawang pangunahing pag-andar dito:

  1. Ang pamamaraan ng openScanner ay tumatakbo kapag ang isang pindutan ay pinindot, at pagkatapos ay bubuksan ang Scanner.
  2. Ang paraan ng onActivityResult ay nagbabalik ng string ng read barcode. Mula dito, maaari kang magbukas ng isang bagong layunin at pumasa sa mga variable kung gusto mong magpakita ng ibang screen pagkatapos mong i-scan.

Hakbang 6. Papalitan na namin ngayon ang layout sa aktibidad_main.xml file.

Ngayon sa iyong / app / folder, pumunta sa res folder -> layout -> activity_main.xml file. Dapat itong magmukhang mga sumusunod. Idagdag ang sumusunod na pulang code:


<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 = "match_parent" android: paddingBottom = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical_margin" tools: context = ". "Android" layout_height = "wrap_content" android: layout_below = "@ + id / textView0000" android: layout_centerHorizontal = "true" android: layout_marginTop = "0000dp" android: text = "I-scan" android: onClick = "openScanner" /> </ RelativeLayout>

Nagdaragdag ito ng isang pindutan, at kapag pinindot, ay tatakbo ang openScanner ng paraan mula sa mainActivity.java file. Maaari mo ring piliin ang isang tema. Pinili ko ang Theme.holo.

Hakbang 7. Ang huling pagbabago ay ang i-edit ang androidManifest.xml File.

Pumunta sa androidManifest.xml file sa ilalim ng direktoryo ng proyekto. Ang code ay dapat magmukhang mga sumusunod, at muling kopyahin ang pulang code



<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.scannerapp" android : versionName = "1"> <uses-sdk android: minSdkVersion = "1.0" android: targetSdkVersion = "8" /> <! - PANGUNAHING KINAKAILANGAN NG ZXING -> <uses-permission android : name = "android.permission.CAMERA" /> <uses-permission android: name = "android.permission.INTERNET" /> <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! - MGA TAMPOK NA KINAKAILANGAN NG ZXING -> <uses-feature android: name = "android.hardware.camera" android: required = "true" /> <uses-feature android: name = "android.hardware.touchscreen" android: "false" /> <uses-feature android: name = "android.hardware.telephony" android: required = "false" /> <application android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme"> <activity android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / app_name "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <category android: name =" android.intent.category.LAUNCHER " /> </ intent-filter> </ activity> <activity android: name = "com.telaeris.datalockrScanner.android.CaptureActivity" android: screenOrientation = "portrait" android: configChanges = "orientation | keyboardHidden" android: theme = " @ android: style / Theme.NoTitleBar.Fullscreen "android: windowSoftInputMode =" stateAlwaysHidden "> <intent-filter> <action android: name =" android.intent.category.MAIN "/> <category android: name =" android. intent.category.LAUNCHER "/> </ intent-filter> <intent-filter> <action android: name =" com.example.scannerapp.SCAN "/> <category android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

Nagdaragdag kami ng mga pahintulot na kinakailangan ng Android na gamitin ang camera at kabilang ang mga aktibidad sa application upang malaman kung anong mga file ang bubuksan kapag gusto naming buksan ang scanner sa device.

Hakbang 8. Tapos na!

Dapat mo na ngayong ma-compile at patakbuhin ang iyong application sa isang device. Kung mayroong anumang mga error sa compiler, maaaring gusto mong linisin ang proyekto at / o i-restart ang eklipse.


Salamat sa iyo
Ang blog na ito ay may malaking salamat sa maraming tao:

  • Si Alberto Landaverde, na nag-interned sa Telaeris tag-araw ng 2012, na nagbago ng Zxing library at nagtayo ng paunang pinadaling library
  • Kelly Lim, kasalukuyang Telaeris intern, na kumuha ng library na ito at lumipat sa kabila nito upang itayo ang DataLockr Android app. Sinulat din ni Kelly ang nilalaman ng blog na ito.
  • Jake Pham, kasalukuyang Telaeris intern, na nagpunta sa pamamagitan ng tutorial dito upang tiyakin na ang lahat ay nagtrabaho bilang na-advertise.

Manatiling nakatutok para sa susunod na grupo ng pag-install kung saan pinag-uusapan namin kung paano i-scan ang library ng ZXing sa parehong mga portrait at landscape mode. At kung mayroon ka ng oras, tingnan ang produkto ng lahat ng kanilang pagsisikap - DataLockr.

DataLockrLogo
Makita. Mag-scan. Magbahagi.

Iwan ng komento

*

Mga Update sa Blog

Newsletter


makipag-usap sa isang kinatawan

Makipag-ugnay sa

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