2012-07-05 28 views
9

Tôi đang cố gắng xử lý giá trị từ máy quét mã vạch USB qua máy tính bảng Android 3.2 của mình, máy quét hoạt động hiệu quả trong hệ điều hành nhưng tôi muốn nhận được giá trị trong chương trình mà không cần chỉnh sửa, máy chủ và phụ kiện usbmanager không liệt kê nó với các thiết bị được kết nối qua USB.Xử lý giá trị máy quét mã vạch qua thiết bị Android

+0

Máy quét mã vạch nào bạn đang sử dụng? Tôi cũng đang làm việc trên cùng một loại dự án, Nó sẽ hữu ích cho tôi. –

Trả lời

5

nhất plug in máy quét mã vạch (mà tôi đã nhìn thấy) được làm như thiết bị hồ sơ HID vì vậy bất cứ điều gì họ được cắm vào nên xem chúng như là một bàn phím về cơ bản. Tôi nghĩ rằng đây là lý do tại sao chúng không hiển thị trong danh sách các phụ kiện API của máy chủ lưu trữ USB. Bạn sẽ có thể để có được đầu vào nguyên liệu từ họ giống như cách bạn sẽ một bàn phím bên trong hoạt động của bạn bằng cách ghi đè Activity.onKeyDown(int keycode, KeyEvent ke)

Something như thế này trong hoạt động của bạn:

@Override 
protected boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.i("TAG", ""+ keyCode); 
    //I think you'll have to manually check for the digits and do what you want with them. 
    //Perhaps store them in a String until an Enter event comes in (barcode scanners i've used can be configured to send an enter keystroke after the code) 
    return true; 
} 
+0

cảm ơn bạn !! nó hoạt động rất tốt !! –

+0

@BlackBird_K Có bất kỳ bảng Arduino nào được sử dụng làm người trung gian cho Giao tiếp không? –

+0

Tôi đã thử điều này và làm việc nhưng tôi đã phải bấm một nút trong barcodescanner. Tôi có thể làm điều đó theo chương trình, sau đó người dùng không cần phải bấm. Nó tự động phát hiện và quét? –

2

bạn sẽ nhận được kết quả về sự kiện Hoạt động KeyDown .

Ví dụ: -

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    char pressedKey = (char) event.getUnicodeChar(); 
    Barcode += "" + pressedKey; 
    Toast.makeText(getApplicationContext(), "barcode--->>>" + Barcode, 1) 
      .show(); 
    return true; 
} 

Hope bài này sẽ giúp bạn.

0

Tôi cũng có cùng một vấn đề, nhưng khi tôi sử dụng onKeyDown hoặc onKeyUp, nó không được gọi mỗi khi tôi có nghĩa là cho mỗi ký tự cho mã vạch. Tôi đã sử dụng DiapatchKeyEvent và nó hoạt động tốt.

+0

Có lẽ bạn nên cân nhắc đưa ra một ví dụ? –

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