bizim blog

Barkod keçidi

Androiddə Barkodlama

zxing_zebra_logo
Telaeris'teki çalışanların burada yayınlandığının çoğu ürünlerimizle ilgili gerçek yaşam örnekleri içindir. Bu, barkod və RFID istifadə, təhlükəsizlik və ya təhlükəsizlik sistemi tətbiqi və ya biznesin idarə olunması ilə bağlı məsləhətlər daxil olmaqla, geniş mövzularda müzakirə etməyə imkan verir. Amma etdiyimiz şeylərin ürəyində bir yerə gəlməkdir çətin problemlər üçün təmiz həllər. Növbəti bir neçə blog yazıları, Telaeris'teki iki stajyerin, Android və ya iPhone mobil cihazınızdan barkod və RFID etiketlərinin izlənməsi üçün pulsuz yeni mobil məhsul yaratmağa necə başladığı nümunəsidir. Sistemə çağırılır DataLockr və başlamışdır - tətbiq və sistemə baxmanı məsləhət görürəm. Bu yazıda təsvir etdikləri şey, Android üçün açıq mənbə Zxing kitabxanasından istifadə edərək, sadə bir barkod oxuma proqramı qurmağın ilk addır.

Bu blog, kodun olduğu kimi hackerlar üçün. Enjoy!

Sadələşdirilmiş Zxing Kitabxanasının tətbiqi
Biz necə istifadə edəcəyini öyrənmə prosesindən gedirik Zxing kitabxana, tezliklə bu böyük kütüphanede nə baş verdiyini anlamaq üçün bir az çətin olduğunu bilirik. Orada çox dərslər var idi, amma addımların bir çoxu bizi qarışdırdı və ya köhnəlmişdi. Koddan itkin olan şeylər var idi və ya kitabxana versiyası və ya bir şeyə əsasən fərqli olan şeylər tamamilə aydınlaşdırılmadı. Sadə bir Zxing tarama kitabxanasını tətbiq etməyə çalışan hər kəsə öz tətbiqi içində istifadə etmək üçün sürətli bir başlanğıc əldə etməyə kömək edəcək bir tutorial etmək istədik.

Bu dərslik kütüphaneyi bağımsız bir tətbiqə necə tətbiq etmək və öz doğma Android tətbiqini yerləşdirməyin əsaslarını öyrətmək üçün Zxing kitabxanasının yırtıcı bir versiyasını istifadə edir. SDK 19, android 4.4 kitabxanasını idarə edən Android Development Kit istifadə edirik. Kitabxana daha sonra üslublu üfüqi oriyentasiya şəklində bir portret rejimi barkod tarayıcısı olaraq dəyişdirildi.

Zxing kitabxanasının sadələşdirilmiş versiyasını buradan istifadə etmək və test etmək üçün yükləyə bilərsiniz: CaptureActivity. Bu sərbəst ZXing kitabxanasından fərqli, lakin başlamağınız yaxşıdır.

Android SDK ilə Eclipse yoxdursa, yükləyin və yükləyin Android İnkişaf Kiti. Android SDK-ni açın və lazım olan komponentləri quraşdırın. Sonra Eclipse açın.

1 addımı. Əvvəlcə layihəni hazırlayacağıq.

Üst menyudan gedin Fayl -> yeni -> Android tətbiqi layihəsi. Layihənizə ad verin (biz "Scanner App" deyirik). Aşağıdakı ayarları kopyalayın və 3 dəfə sonrakı dəfə Aktivləşdirmə səhifəsini yaratın. Boş Aktivliyi seçin və Sonradan sonra basın. Klasör, ekranın sol tərəfində default olaraq görünür. Əgər olmasaydı, Eclipse-də layihə ekranını açmaq üçün maksimize düyməsini basın.

Barkod keçidi

2 addımı. Tema səhvlərini düzəldin (əgər sizdə yoxsa, 3 addım atlayın)

Değerlerinizdeki qovluqlarda səhvlər varsa, bu bir Eclipse problemi ola bilər. Bütün style.xml səhifələrini açın və bütün üslub və onun məzmununu silin. Ayrıca AndroidManifest.xml səhifəsinə keçin və proqramın altında Android: theme = "@ style / AppTheme" silin.

3 addımı. Sonrakı brauzer kitabxanasını idxal etməkdir.

Henüz yoksa, yukarıdaki CaptureActivty zip'sini indirin. Getmək Fayl -> İthalat -> Mövcud Android Kodunu İş yerinə idxal et -> və açıq göz atın və yüklədiyiniz Zxing kodunu tapa bilərsiniz. Yalnız ilk layihəni yoxlayın CaptureActivity. Yolu qurmaq / içində olmamalıdır. Bitirdikdən sonra basın. sağ basın / CaptureActivity / Package Explorer qovluğunda qovluq və klikləyin xüsusiyyətləri -> Android və "Kitabxana" onay qutusuna əmin olun. Tamam'ı basın.

4 addımı. İndi appimizi brauzer kitabxanasına bağlamalıyıq.

Android tətbiq qovluğuna sağ basın və sonra basın xüsusiyyətləri -> Android. Əlavə düyməsinə vurun və CaptureActivity-ə basın. Proje Tarayıcısı ile Android ekranında tıkladıktan sonra yaşıl bir onay işareti göründüğünden əmin olun. Tamam'ı basın.

5 Adım. İndi tətbiqimizi brauzerin tətbiqinə başlaya bilərik. MainActivity.java faylı ilə başlayın.

Sizin app qovluğunuza gedin / src / qovluq və açın ƏsasActivity.java fayl. Aşağıda lazım olan koddur. Kopyaladığınız şeyi yoxlayın. Əlavə edəcəyiniz kod qırmızı mətndə olacaq. Səhvlər alırsınızsa, müəyyən sinifləri idxal etməliyik. yalnız ctrl + shift + O basın və bütün lazımi idxal idxal olunacaq.



paket com.example.scannerapp; idxal android.app.Activity; idxal android.content.Intent; idxal android.os.Bundle; idxal android.view.Menu; import android.view.View; idxal android.widget.Toast; ictimai sinif MainActivity fəaliyyətini genişləndirir {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (Menyu menyusu) {// Menyu şişirmək; bu mövcud olduqda maddələr fəaliyyət çubuğuna əlavə edir. getMenuInflater (). şişirmək (R.menu.main, menyu); həqiqətə dönmək; } p ublic void openScanner (View view) {Intent intent = yeni niyyət ("com.example.scannerapp.SCAN"); startActivityForResult (niyyət, 0000); } public void onActivityResult (int requestCode, int resultCode, niyyət niyyəti) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {String məzmunu = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (bu, məzmunu, 0) .show (); } else if (nəticəCode == RESULT_CANCELED) {// işlədilməsi ləğv}}} } 

Burada iki əsas funksiya var:

  1. OpenScanner metodu bir düyməyə basıldığında işləyir və sonradan Brauzer açılır.
  2. OnActivityResult metodu, oxunan barkodun simasını qaytarır. Taramadan sonra başqa bir ekranı göstərmək istəyirsinizsə buradan yeni bir niyyət aça və dəyişənlərə keçə bilərsiniz.

Addım 6.Biz indi activity_main.xml faylında layout dəyişəcək.

İndi sizin / app / qovluğa get res qovluğu -> layout -> activity_main.xml faylı. Bu aşağıdakı kimi olmalıdır. Aşağıdakı qırmızı kod əlavə edin:


<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 android: paddingRout = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical_margin" tools: context = "android: paddingBottom =" @ dimen / activity_vertical_margin "android: paddingLeft =" @ dimen / activity_horizontal_margin "android: Android: layout_withth = "wrap_content" android: layout_height = "wrap_content" android: layout_below = "@ id / textView0000" android: layout_centerHorizontal = "true" android: android: id = "@ + id / button0000" layout_marginTop = "1dp" android: text = "Scan" android: onClick = "openScanner" /> </ RelativeLayout>

Bu bir düyməni əlavə edir və bərkincə, openScanner metodundan istifadə edəcəkdir ƏsasActivity.java fayl. Bir mövzunu da seçməlisiniz. Theme.holo seçdim.

7 Adım. Son dəyişiklik, androidManifest.xml Faylını redaktə etməkdir.

Yanına gedin androidManifest.xml layihə dizininin altında fayl. Kod aşağıdakı kimi görünməlidir və yenə qırmızı kodun surətini çıxarın



<? xml version = "1.0" encoding = "utf-8"?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" paketi = "com.example.scannerapp" android : versionCode = "1" android: versionName = "1.0"> <uses-sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - ZXING tərəfindən tələb olunan icazələrin -> <uses-permission android : name = "android.permission.CAMERA" /> <uses-permission android: name = "android.permission.INTERNET" /> <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! ZXING tərəfindən tələb olunan XÜSUSİYYƏTLƏRİ -> <uses-feature android: name = "android.hardware.camera" android: required = "true" /> <uses-feature android: name = "android.hardware.touchscreen" android: required = "false" /> < uses -feature android: name = "android.hardware.telephony" android: required = "false" /> <android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme"> <fəaliyyəti android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / app_name "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <kateqoriya android: name =" android.intent.category.LAUNCHER " android: screenOrientation = "portrait" android: configChanges = "orientation | keyboardHidden" android: theme = " </ intent-filter> </ activity> <activity android: name =" com.telaeris.datalockrScanner.android.CaptureActivity " @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 "/> <kateqoriya android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

Biz cihazın brauzerini cihazda açmaq istədiyimiz zaman hansı faylların açılacağını bilmək üçün Android-dən kameranı istifadə etməyi və proqrama daxil olan fəaliyyətləri daxil etmək üçün icazə tələblərini əlavə edirik.

8 addımı. Hər şey hazırdır!

İndi tətbiqinizi cihaza kompilyasiya etmək və idarə etmək lazımdır. Hər hansı bir kompilyator səhvi varsa, layihəni təmizləyin və / və ya tutmağı yenidən başladın.


Təşəkkür edirik
Bu blog bir çox millətə çox təşəkkür edir:

  • Alberto Landaverde, ZNXX-nin Telaeris yayına girmiş, Zxing kitabxanasını dəyişdirmiş və ilk sadələşdirilmiş kitabxana tikmişdir
  • Kelly Lim, bu kitabxana aldı və qurmaq üçün kənarda köçüb, mövcud Telaeris intern, DataLockr Android proqramı. Kelly də bu blogun məzmununu yazdı.
  • Jake Pham, mövcud Telaeris stajı, hər şeyin reklam olaraq işlədiyinə əmin olmaq üçün buradakı təlimçidən keçdi.

ZXing kitabxanasının portret və landşaft rejimlərində taramasını necə müzakirə etdiyimiz növbəti taksit üçün bizi qalın. Vaxtınız varsa, bütün səylərinin məhsuluna baxın - DataLockr.

DataLockrLogo
Olsun. Tarama olun. Paylaşılan olun.

A Şərh yaz

*

Blog yeniləmələri

Bülletenlər


bir nümayəndəsi ilə danışın

Əlaqə

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