2011-12-27 33 views

Trả lời

0

UPDATE:

Như FAQ của ZXing đã được cập nhật kể từ khi tôi đăng câu trả lời này, nội dung dưới đây là không còn chính xác:

Có bạn đọc ZXing của FAQ?

Điều này có thể được sử dụng trên thiết bị Android chỉ với máy ảnh mặt trước, như máy tính bảng Nexus 7 không? Không phải lúc này. Ứng dụng này yêu cầu một máy ảnh. Trong Android, chỉ các camera phía sau mới được coi là máy ảnh 'thực tế', và do đó các thiết bị chỉ có camera phía trước không tương thích. Hơn nữa, hỗ trợ API cho máy ảnh trước xuất hiện trong bản phát hành Android sau hơn là hiện do ứng dụng yêu cầu. Máy ảnh mặt trước có xu hướng có CCD kém nhạy cảm và thiếu tự động lấy nét, khiến chúng khó quét được .

Tuy nhiên, Barcode Scanner+ không hỗ trợ các thiết bị chỉ có máy ảnh phía trước.

Bên cạnh đó, mặc dù tôi nghĩ rằng điều này hoàn toàn không thể nếu bạn có thể kết nối camera phía trước. Vì vậy, tôi nghĩ rằng bạn nên có một cái nhìn tại Phần camera của Tài liệu Android: herehere

+0

(Điều này không còn đúng và mục Câu hỏi thường gặp đã bị xóa.) –

+0

@SeanOwen Cảm ơn, tôi đã xóa câu trả lời của mình – dumbfingers

5

Phiên bản mới nhất của Barcode Scanner cũng như ZXing source code giờ đây hỗ trợ camera phía trước.

+0

Tôi tìm kiếm tùy chọn nhưng không thể tìm thấy cài đặt. Làm thế nào để bạn làm điều đó ? – Natim

+0

@Natim Tôi nhớ rằng nó đang được xử lý tự động. Máy ảnh mặt sau được sử dụng theo mặc định, nhưng nếu không có máy ảnh nào thì máy ảnh mặt trước sẽ được sử dụng thay thế. –

+0

Máy ảnh sau của tôi bị hỏng, tôi ước tôi có thể thử với máy ảnh phía trước. – Natim

9

Thực hiện theo các bước sau:

1) Tải về mã nguồn ở đây: http://code.google.com/p/zxing/source/checkout

2) Nhập mã nguồn như một dự án mới vào Eclipse và làm thư mục gốc của dự án là thư mục/android (tìm thấy trong mã nguồn).

3) Đảm bảo sao chép mọi thứ trong/core/src vào dự án này, vì mã nguồn được nhập vào bước 2 yêu cầu nó.

4) Đảm bảo đặt trình biên dịch của bạn sang Java 1.6 trên Eclipse (nhấp chuột phải vào dự án, thuộc tính, Java Compiler) nếu không bạn sẽ gặp một số lỗi liên quan đến chú thích @Override.

5) Chỉnh sửa com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface lớp như sau:

while (index < numCameras) { 
     Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); 
     Camera.getCameraInfo(index, cameraInfo); 


     if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
      break; 
     } 
     /*//Original code (gets the back camera. This is NOT what you want!) 
     if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { 
    break; 
    }*/ 
    index++; 
} 

5) Hãy dự án này như một thư viện, một cách dễ dàng mô tả ở đây: http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

6) Tham chiếu dự án này vào dự án thực sự của bạn (nhấp chuột phải vào dự án thực, thuộc tính, Đường dẫn xây dựng Java, Dự án, Thêm).

7) Bạn đã hoàn tất! =)

Hy vọng điều đó sẽ hữu ích.

+0

Mô tả hay Tiago :) –

+0

Hai Tiago, tôi đã triển khai camera trước khi bạn nhấn mạnh. Nhưng nó không quét và nhận được kết quả. Chế độ xem máy ảnh đơn giản đang hiển thị. Nếu tôi hiển thị Mã vạch ở phía trước nó. chẳng có gì xảy ra. Không có dấu vết ngăn xếp. Rắc rối có thể là cái gì? Bạn vui lòng giúp tôi –

+0

Sự cố có thể là camera phía trước bạn đang sử dụng không có lấy nét tự động, điều này khiến việc đọc mã vạch thực sự khó khăn. Máy ảnh mặt trước thường bị khóa tập trung (để làm cho chúng rẻ hơn) khiến chúng không tốt cho các vật thể gần. Tôi cũng gặp vấn đề với camera trước để đọc mã vạch vì thiếu tự động lấy nét. Đôi khi phải mất hơn 1 phút cho đến khi tôi có thể quản lý để làm cho nó nhận ra mã vạch. Lần khác, tôi không thể làm cho máy ảnh đọc mã vạch cả. Vấn đề không phải là trong phần mềm nhưng trong chính máy ảnh. – Tiago

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