HƯỚNG DẪN VÍ DỤ VỀ ỨNG DỤNG TRÌNH ĐỌC MÃ VẠCH ANDROID SỬ DỤNG ZXING (ANDROID BARCODE READER EXAMPLE TUTORIAL)

Đăng bởi: Admin | Lượt xem: 1852 | Chuyên mục: Android

Máy đọc mã vạch Android là một ứng dụng cho phép người dùng đọc mã vạch. Hướng dẫn này giải thích cách bạn có thể tạo ứng dụng đọc mã vạch cho Android.


MÁY ĐỌC MÃ VẠCH LÀ GÌ?

Máy đọc mã vạch là một thiết bị điện tử có thể đọc mã vạch và xuất ra trên thiết bị hiển thị như máy tính hoặc thiết bị Android. Với sự trợ giúp của đầu đọc mã vạch Android, bạn có thể quét mã vạch trên sản phẩm. Có hàng trăm ứng dụng đọc mã vạch Android có sẵn trên Play Store. Bây giờ bạn có thể tự làm theo hướng dẫn này. Rất dễ dàng vì Google đã tung ra một thư viện trình đọc mã vạch miễn phí có tên ZXing có thể được truy cập thông qua Intent trong ứng dụng.

VÍ DỤ VỀ TRÌNH ĐỌC MÃ VẠCH ANDROID

Mọi thiết bị Android đều có khả năng đọc mã vạch để giải mã rất nhiều thông tin. Hướng dẫn này là hướng dẫn đầy đủ để tạo một ứng dụng trong Android để đọc mã vạch. Chúng ta sẽ triển khai ứng dụng đọc mã vạch Android với việc sử dụng thư viện ZXing (Zebra Crossing), sẽ sử dụng để quét mã vạch trong Android.
ZXing (Zebra Crossing) là một mã nguồn mở, thư viện xử lý ảnh 1D / 2D được triển khai bằng Java.

Truy cập vào đây để có thư viện Zxing: http://github.com/zxing

Những thứ bạn cần để phát triển đầu đọc mã vạch Android

  1. Android Studio
  2. Thiết bị Android
  3. cáp USB
  4. Một sản phẩm có mã vạch
  5. Thư viện ZXing

TẠO MỘT DỰ ÁN MỚI

Mở Android Studio, File => New Project

Nhập project name

Click vào next, giữ nguyên cài đặt mặc định và click vào finish.

Tải xuống gói ZXing và đưa nó vào project’s build path.

Tạo MainActivity.

Chuyển đến thư mục res mở acitive_main.xml

Tạo linear layout, button (để bắt đầu đọc mã vạch) và text view (để hiển thị thông tin) trong activity này.

ĐÂY LÀ MÃ CHO ACTIVITY_MAIN.XML

<? xml version = "1.0" encoding = "utf-8" ?>
< RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    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"
    app:layout_behavior = "@string/appbar_scrolling_view_behavior"
    tools:context = "com.example.admin.barcodereader.MainActivity"
    tools:showIn = "@layout/activity_main" >

    < LinearLayout
        android:orientation = "vertical"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_centerVertical = "true"
        android:layout_alignParentLeft = "true"
        android:layout_alignParentStart = "true"
        android:weightSum = "1" >

        < TextView
            android:layout_width = "192dp"
            android:layout_height = "wrap_content"
            android:layout_marginTop = "20dp"
            android:text = "SCAN"
            android:textAlignment = "center"
            android:textSize = "30dp"
            android:id = "@+id/textView"
            android:layout_gravity = "center_horizontal"
            android:layout_weight = "0.21" />

        < Button
            android:layout_width = "187dp"
            android:layout_height = "wrap_content"
            android:text = "Bar Code"
            android:textSize = "20dp"
            android:id = "@+id/button"
            android:layout_gravity = "center_horizontal"
            android:layout_weight = "0.08"
            android:onClick = "ScanBar" />
    </ LinearLayout >
</ RelativeLayout >

Thực hiện hàm onClick () trong lớp MainActivity.java

Để triển khai mã này, chúng ta cần thư viện Zebra Cross tại com.google.zxing.client.android

ĐÂY LÀ MÃ HOÀN CHỈNH CỦA MAINACTIVITY.JAVA

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    static final String SCAN = "com.google.zxing.client.android";
    @Override
    protected void onCreate( Bundle savedInstanceState ) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );
        Toolbar toolbar = ( Toolbar ) findViewById( R.id.toolbar );
        setSupportActionBar( toolbar );

        FloatingActionButton fab = ( FloatingActionButton ) findViewById( R.id.fab );
        fab.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick( View view ) {
                Snackbar.make( view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction( "Action", null ).show();
            }
        });
    }

    // fucntion to scan barcode
    public void ScanBar ( View view ) {
        try {
            //this intent is used to call start for bar code
            Intent in = new Intent( SCAN );
            in.putExtra( "SCAN_MODE", "PRODUCT_MODE" );
            startActivityForResult( in, 0 );
        } catch ( ActivityNotFoundException e) {
            showDialog( MainActivity.this,"No scanner found", "Download Scanner code Activity?"," Yes", "No" ).show();

        }
    }


    private Dialog showDialog ( final Activity act, CharSequence title,CharSequence message, CharSequence yes, CharSequence no ) {

        // a subclass of dialog that can display buttons and message
        AlertDialog.Builder download = new AlertDialog.Builder( act );
        download.setTitle( title );
        download.setMessage ( message );
        download.setPositiveButton ( yes, new DialogInterface.OnClickListener ( ) {
            @Override
            public void onClick( DialogInterface dialog, int i ) {
                // TODO Auto-generated method stub
                //uri to download barcode scanner
                Uri uri = Uri.parse( "market://search?q=pname:" + "com.google.zxing.client.android" );
                Intent in = new Intent ( Intent.ACTION_VIEW, uri );
                try {
                    act.startActivity ( in );
                } catch ( ActivityNotFoundException e) {

                }
            }
        });
            download.setNegativeButton ( no, new DialogInterface.OnClickListener() {
                @Override
                public void onClick ( DialogInterface dialog, int i ) {
                    // TODO Auto-generated method stub
                }
            });
            return download.show();
    }

    @Override
    protected void onActivityResult ( int requestCode, int resultCode, Intent in ) {
        // TODO Auto-generated method stub
        if( requestCode == 0 ){
            if( resultCode == RESULT_OK ){
                //use to get scan result
                String contents = in.getStringExtra( "SCAN_RESULT" );
                String format =  in.getStringExtra( "SCAN_RESULT_FORMAT" ) ;
                Toast toast = Toast.makeText( this, "Content:" + contents + " Format:" + format, Toast.LENGTH_LONG );
                toast.show();
            }
        }
    }
}

Sau khi hoàn thành phần mã, bây giờ hãy chạy ứng dụng của bạn trên thiết bị di đồng để xem nó hoạt đông (Không thể chạy ứng dụng trên trình giả lập vì trình giả lập không có bất kỳ thiết bị quét nào)

TÓM LẠI

Trong hướng dẫn này, chúng ta đã giải thích cách tạo ứng dụng máy quét mã vạch cho thiết bị Android của bạn. Vì chúng ta đã sử dụng thư viện ZXing nên không cần cài đặt máy quét mã vạch trong thiết bị của mình, ZXing sẽ thực hiện công việc này cho chúng ta.

Có nhiều cách khác để tạo ứng dụng đọc mã vạch nhưng cách này là đơn giản nhất. Giờ đây, bạn có thể quét, giải mã mã vạch của bất kỳ sản phẩm nào.

Bạn có thể sử dụng tính năng này trong nhiều ứng dụng khác, thường khi xây dựng các ứng dụng Android phức tạp, chúng ta cần đọc mã vạch và bạn có thể tích hợp mã này trong ứng dụng của mình.

vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: Android

Học Kotlin cơ bản
Số bài học:
Lượt xem: 16950
Đăng bởi: Admin
Chuyên mục: Android

Học lập trình Flutter cơ bản
Số bài học:
Lượt xem: 54351
Đăng bởi: Admin
Chuyên mục: Android

Lập trình Android cơ bản
Số bài học:
Lượt xem: 21987
Đăng bởi: Admin
Chuyên mục: Android