blog của chúng tôi

Chuyển mã vạch

Mã vạch trên Android

zxing_zebra_logo
Hầu hết thời gian khi nhân viên tại Telaeris xuất bản ở đây, đó là những ví dụ thực tế liên quan đến sản phẩm của chúng tôi. Điều này cho phép chúng tôi thảo luận về một loạt các chủ đề, bao gồm mã vạch và sử dụng RFID, triển khai hệ thống an toàn hoặc an toàn hoặc các mẹo về điều hành doanh nghiệp. Nhưng tại trung tâm của những gì chúng tôi làm là để đến với giải pháp gọn gàng cho các vấn đề phức tạp. Vài bài viết blog tiếp theo là ví dụ về cách hai thực tập sinh tại Telaeris bắt đầu tạo ra một sản phẩm di động mới miễn phí để theo dõi mã vạch và thẻ RFID từ thiết bị di động Android hoặc iPhone của bạn. Hệ thống này được gọi là DataLockr và vừa được giới thiệu - Tôi khuyên bạn nên kiểm tra ứng dụng và hệ thống. Những gì họ mô tả trong bài viết này là bước đầu tiên của họ về cách xây dựng một ứng dụng đọc mã vạch đơn giản bằng cách sử dụng thư viện Zxing nguồn mở cho Android.

Blog này là dành cho các tin tặc ra có thích mã. Thưởng thức!

Triển khai một thư viện Zxing đơn giản
Trong khi chúng tôi đang trải qua quá trình học cách sử dụng Zxing thư viện, chúng tôi sớm phát hiện ra rằng nó là một chút rắc rối cố gắng để hiểu những gì đang xảy ra trong thư viện khổng lồ này. Có rất nhiều bài hướng dẫn ngoài kia, nhưng rất nhiều bước hoặc làm chúng tôi bối rối hoặc đã lỗi thời. Có những thứ thiếu trong mã, hoặc những thứ khác nhau dựa trên phiên bản thư viện hoặc một cái gì đó không được làm rõ đầy đủ. Chúng tôi muốn thực hiện một hướng dẫn có thể giúp bất kỳ ai cố gắng thực hiện một thư viện quét Zxing đơn giản có được một khởi đầu nhanh chóng để sử dụng nó trong ứng dụng của riêng họ.

Hướng dẫn này sử dụng một phiên bản rách nát của thư viện Zxing để dạy những điều cơ bản về cách triển khai thư viện thành một ứng dụng độc lập và triển khai ứng dụng Android gốc của riêng bạn. Chúng tôi đang sử dụng Bộ phát triển Android chạy SDK 19, thư viện 4.4 android. Thư viện đã được sửa đổi thành một máy quét mã vạch chế độ dọc thay vì sau đó là định hướng ngang mặc định.

Bạn có thể tải xuống phiên bản đơn giản của thư viện Zxing của chúng tôi để sử dụng và kiểm tra tại đây: CaptureActivity. Điều này khác với thư viện ZXing đã được phát hành, nhưng rất tốt để bạn bắt đầu.

Nếu bạn không có Eclipse với SDK Android, hãy tải xuống và cài đặt Bộ phát triển Android. Mở SDK Android và cài đặt các thành phần cần thiết. Tiếp theo, mở Eclipse.

Bước 1. Đầu tiên chúng ta sẽ tạo dự án.

Chuyển đến menu trên cùng Tệp -> mới -> Dự án ứng dụng Android. Đặt tên cho dự án của bạn (chúng tôi gọi là "Ứng dụng máy quét" của chúng tôi). Sao chép cài đặt bên dưới và nhấp vào lần tiếp theo 3 đến trang Tạo hoạt động. Chọn Empty Activity và nhấn Next sau đó Finish. Theo mặc định, thư mục sẽ xuất hiện ở bên trái màn hình. Nếu không, hãy nhấp vào nút phóng to để mở màn hình dự án trong Eclipse.

Chuyển mã vạch

Bước 2. Sửa lỗi chủ đề (nếu bạn không có, chuyển sang bước 3)

Nếu bạn gặp lỗi trong các thư mục giá trị của bạn, đây có thể là một vấn đề về Eclipse. Mở tất cả các trang style.xml và xóa tất cả các thẻ kiểu và nội dung của nó. Ngoài ra, hãy truy cập AndroidManifest.xml của bạn và xóa android: theme = ”@ style / AppTheme” trong ứng dụng.

Bước 3. Tiếp theo là nhập thư viện máy quét.

Nếu bạn chưa có, vui lòng tải xuống mã zip CaptureActivty ở trên. Đi đến Tệp -> Nhập -> Nhập mã Android hiện tại vào vùng làm việc -> và mở duyệt và tìm mã nguồn Zxing mà bạn đã tải xuống. Chỉ kiểm tra dự án đầu tiên có tên CaptureActivity. Đường dẫn không nên chứa build / in. Nhấp vào kết thúc. Kích chuột phải vào / CaptureActivity / Thư mục trong tab Package Explorer và nhấp thuộc tính -> Android và đảm bảo chọn hộp kiểm “Thư viện”. Nhấp vào ok.

Bước 4. Bây giờ chúng ta phải kết nối ứng dụng của chúng ta với thư viện máy quét.

Nhấp chuột phải vào thư mục ứng dụng Android của bạn và sau đó nhấp vào thuộc tính -> Android. Nhấp vào nút thêm và nhấp vào CaptureActivity. Đảm bảo dấu kiểm màu xanh lá cây xuất hiện sau khi bạn nhấp vào không sao trên màn hình Android bằng Trình quét dự án. Nhấp vào ok.

Bước 5. Bây giờ chúng ta có thể bắt đầu triển khai máy quét vào ứng dụng của chúng tôi. Bắt đầu với tệp mainActivity.java.

Trong thư mục ứng dụng của bạn, hãy truy cập / src / và mở thư mục của bạn mainActivity.java tập tin. Dưới đây là mã cần thiết. Sao chép và dán những gì bạn không có. Mã bạn cần phải thêm vào sẽ có văn bản màu đỏ. Nếu bạn gặp lỗi, bạn sẽ cần nhập một số lớp nhất định. bạn chỉ cần nhấn ctrl + shift + O và tất cả các mục nhập cần thiết sẽ được nhập.



gói com.example.scannerapp; nhập android.app.Activity; nhập android.content.Intent; nhập android.os.Bundle; nhập android.view.Menu; nhập android.view.View; nhập android.widget.Toast; public class MainActivity mở rộng Activity {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (Menu trình đơn) {// Làm nổi bật menu; điều này sẽ thêm các mục vào thanh hành động nếu nó hiện diện. getMenuInflater (). inflate (R.menu.main, menu); trả lại đúng; } p ublic void openScanner (Chế độ xem) {Intent intent = new Intent ("com.example.scannerapp.SCAN"); startActivityForResult (intent, 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 (nội dung này, 0) .show (); } else if (resultCode == RESULT_CANCELED) {// Xử lý hủy}}} } 

Có hai chức năng chính ở đây:

  1. Phương thức openScanner chạy khi một nút được nhấn và sau đó sẽ mở Máy quét.
  2. Phương thức onActivityResult trả về chuỗi mã vạch được đọc. Từ đây, bạn có thể mở một ý định mới và chuyển vào các biến nếu bạn muốn hiển thị một màn hình khác sau khi quét.

Bước 6.Chúng tôi sẽ thay đổi bố cục trong tệp activity_main.xml.

Bây giờ trong của bạn / app / thư mục, đi đến thư mục res -> layout -> tệp activity_main.xml. Nó sẽ giống như sau. Thêm mã màu đỏ sau đây:


<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 Công cụ "android: paddingBeftom =" @ dimen / activity_horizontal_margin "android: paddingRight =" @ dimen / activity_horizontal_margin "android: paddingTop =" @ dimen / activity_vertical_margin ": context =". MainActivity "> <Button android: id =" @ + id / button0000 "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: layout_below =" @ + id / textView0000 "android: layout_centerHorizontal =" true "android: layout_marginTop = "1dp" android: text = "Quét" android: onClick = "openScanner" /> </ RelativeLayout>

Thao tác này sẽ thêm nút và khi được nhấn, sẽ chạy phương thức openScanner từ mainActivity.java tập tin. Bạn cũng có thể cần phải chọn một chủ đề. Tôi đã chọn Theme.holo.

Bước 7. Sửa đổi cuối cùng là chỉnh sửa tệp androidManifest.xml.

Tới androidManifest.xml trong thư mục dự án. Mã phải giống như sau, và một lần nữa sao chép mã màu đỏ



<? 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"> <sử dụng-sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - PHÉP BẮT BUỘC BỞI ZXING -> <quyền sử dụng-android : name = "android.permission.CAMERA" /> <uses-permission android: name = "android.permission.INTERNET" /> <uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <! - Các tính năng được yêu cầu bởi ZXING -> <uses-feature android: name = "android.hardware.camera" android: required = "true" /> <sử dụng-feature android: name = "android.hardware.touchscreen" android: required = "false" /> <uses-feature android: name = "android.hardware.telephony" android: required = "false" /> <ứng dụng android: allowBackup = "true" android: biểu tượng = "@ drawable / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme"> <hoạt động android: name = "com.example.scannerapp.Ma inActivity "android: label =" @ string / app_name "> <intent-filter> <action android: name =" android.intent.action.MAIN "/> <danh mục android: name =" android.intent.category.LAUNCHER " /> </ intent-filter> </ activity> <hoạt động 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 "/> <danh mục android: name =" android. intent.category.LAUNCHER "/> </ intent-filter> <intent-filter> <action android: name =" com.example.scannerapp.SCAN "/> <danh mục android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

Chúng tôi đang thêm quyền mà android yêu cầu sử dụng máy ảnh và bao gồm các hoạt động cho ứng dụng để biết tệp nào sẽ mở khi chúng tôi muốn mở trình quét trên thiết bị.

Bước 8. Tất cả đã được làm xong!

Bây giờ bạn có thể biên dịch và chạy ứng dụng của bạn trên một thiết bị. Nếu có bất kỳ lỗi trình biên dịch nào, bạn có thể muốn dọn dẹp dự án và / hoặc khởi động lại nhật thực.


Cảm ơn
Blog này nợ lớn cảm ơn bạn với nhiều người:

  • Alberto Landaverde, người thực tập với mùa hè Telaeris của 2012, người đã sửa đổi thư viện Zxing và xây dựng thư viện đơn giản ban đầu
  • Kelly Lim, hiện tại Telaeris intern, người đã lấy thư viện này và di chuyển ra ngoài nó để xây dựng DataLockr Ứng dụng Android. Kelly cũng đã viết nội dung của blog này.
  • Jake Pham, hiện tại Telaeris intern, người đã đi qua các hướng dẫn ở đây để đảm bảo rằng tất cả mọi thứ đã làm việc như quảng cáo.

Tiếp tục theo dõi phần tiếp theo, chúng tôi sẽ thảo luận cách làm cho thư viện ZXing quét ở cả chế độ dọc và ngang. Và nếu bạn có thời gian, hãy xem sản phẩm của tất cả nỗ lực của họ - DataLockr.

DataLockrLogo
Được nhìn thấy. Được quét. Được chia sẻ.

Góp ý

*

Cập nhật Blog

Tin


nói chuyện với một đại diện

Liên hệ

Điện thoại: 858-627-9700
Fax: 858-627-9702
-------------------------------
9123 Chesapeake Dr.
San Diego, CA 92123
-------------------------------
sales@telaeris.com