2011-11-04 38 views
16

Ai đó có thể cho tôi biết nếu tạo ứng dụng máy quét mã vạch (cho Android) có khó không? Thư viện OpenCV có khởi đầu tốt không? Tôi có thể tìm thuật toán nào giải thích rõ ràng cách đọc mã vạch? Tôi sẽ đánh giá cao tất cả các tài liệu tốt về chủ đề này!Làm thế nào để tạo máy quét mã vạch (Android)?

Cảm ơn trước!

+1

Thư viện ZXing có thể quét mã vạch trên Android. Đó có thể là một điểm khởi đầu. – Codo

Trả lời

22

Dự án ZXing cung cấp ứng dụng đọc mã vạch độc lập - thông qua cơ chế ý định của Android - có thể được gọi bởi các ứng dụng khác muốn tích hợp quét mã vạch.

Cách dễ nhất để làm điều này là để gọi ZXing SCAN Ý định từ ứng dụng của bạn, như thế này:

public Button.OnClickListener mScan = new Button.OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
     startActivityForResult(intent, 0); 
    } 
}; 

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      String contents = intent.getStringExtra("SCAN_RESULT"); 
      String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
      // Handle successful scan 
     } else if (resultCode == RESULT_CANCELED) { 
      // Handle cancel 
     } 
    } 
} 

Nhấn nút liên quan đến mScan sẽ khởi động trực tiếp vào màn hình máy quét mã vạch ZXing (hoặc sụp đổ nếu ZXing chưa được cài đặt). Khi mã vạch đã được nhận dạng, bạn sẽ nhận được kết quả trong Hoạt động của mình, ở đây trong biến nội dung.

Để tránh sự cố và đơn giản hóa mọi thứ cho bạn, ZXing có provided a utility class mà bạn có thể tích hợp vào ứng dụng của mình để cài đặt ZXing mượt mà hơn bằng cách chuyển hướng người dùng đến Android Market nếu họ chưa cài đặt ứng dụng. Cuối cùng, nếu bạn muốn tích hợp quét mã vạch trực tiếp vào ứng dụng của bạn mà không cần cài đặt ứng dụng ZXing riêng biệt, thì đó là một dự án mã nguồn mở và bạn có thể làm như vậy! :)

10

Bạn có thể sử dụng máy quét mã vạch Zebra Crossing hiện có cho Android, có sẵn tại: http://code.google.com/p/zxing/. Thông thường ý tưởng là bạn sẽ gọi nó thông qua ý định, như trong ví dụ ở đây: http://code.google.com/p/zxing/wiki/ScanningViaIntent.

+0

Hãy nói rằng, tôi không muốn sử dụng thư viện nâng cao như vậy mà làm mọi thứ cho tôi. – Ziem

+2

Thật không may thư viện này không đặc biệt thân thiện khi được sử dụng như một tệp jar thư viện mà bạn đưa vào trong ứng dụng của mình, nhưng bạn vẫn có thể 'đóng gói lại' theo cách thủ công và cố gắng chỉ sử dụng các phần bạn cần/muốn. Tuy nhiên, như tôi đã nói, nó chủ yếu có nghĩa là để được sử dụng thông qua ý định và nó là một chút khó khăn hơn để 'nhúng' nó vào ứng dụng của bạn. Có lẽ ai đó sẽ có một gợi ý khác. – ivantod

6

Zebra Crossing là bộ giải mã mã vạch java 1D hoặc 2D được mã hóa tốt nhất hoặc bộ mã hóa xung quanh. Rất nhiều người sử dụng nó, và nó trở thành tiêu chuẩn thực tế cho android. Có a healthy buzz about it ở đây.

RedLaserhas an api, nhưng bạn sẽ phải trả tiền nếu bạn sử dụng nó trong sản xuất. Khi tôi thử nó, tôi không thấy nó là một cải tiến ngoạn mục so với Zebra Crossing. Chắc chắn không phải cho price.

jjildoes barcodes nhưng chỉ có 3 người tham gia dự án và tôi chưa bao giờ sử dụng bản thân mình nên tôi không biết phải nói gì với bạn. source của nó chắc chắn có thể đọc được.

Khi bạn start reading, bạn sẽ thấy người đọc là những điều khó thực hiện do hình ảnh mờ, tiếng ồn, biến dạng, góc kỳ lạ, v.v. Vì vậy, nếu bạn muốn một cái gì đó đáng tin cậy, bạn có thể muốn đi với một thư viện duy trì cộng đồng.

Các vấn đề liên quan