2011-11-11 25 views
13

Tôi đã thêm ứng dụng Android Zying vào ứng dụng của tôi làm thư viện. Sau đó, chỉnh sửa Manifest.xml và cố gắng sử dụng Intent integrator. Không may mắn.Làm thế nào để tích hợp Zxing mà không cần cài đặt ứng dụng máy quét mã vạch?

Tải xuống ứng dụng máy quét hoàn toàn không hợp lý.

Bằng cách này:

Intent scanIntent = new Intent("com.google.zxing.client.android.SCAN"); 
scanIntent.setPackage("com.google.zxing.client.android"); 

11-11 15:15:27.793: WARN/System.err(15384): android.content.ActivityNotFoundException: No 
Activity found to handle Intent { act=com.google.zxing.client.android.SCAN 
cat=[android.intent.category.DEFAULT] pkg=com.google.zxing.client.android (has extras) } 
+0

http://stackoverflow.com/questions/7510430/qr-reader-in-android/7510615#7510615 ,, kiểm tra câu hỏi này, nếu điều này giúp ích .. –

+0

Xin chào, [trang này cho java và bitmap] (http://code.google.com/p/zxing/wiki/DeveloperNotes), nếu bạn chụp ảnh bằng máy ảnh và sau đó cho phép chụp ảnh độc, nó sẽ hoạt động, nhưng đây chỉ là một ý tưởng. – kameny

+0

@Ngày sao bạn đã giải quyết vấn đề? – Erum

Trả lời

4

+1 cho câu hỏi của bạn. Tôi đã thử điều này nhưng không có may mắn sau đó tôi thêm vào đó là các tập tin mã trong ứng dụng của tôi. Nếu bạn muốn bạn cũng có thể làm điều đó. Đây ia một liên kết:

http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid

Nếu bạn nhận được bất kỳ cách nào tốt hơn sau đó cho tôi biết.

+0

Thêm dự án android zying làm thư viện nên thực hiện thủ thuật nhưng không hoạt động. Dù sao, do đó, bạn đã thêm mã nguồn và sử dụng cuộc gọi ý định và nó đã làm việc? –

+0

bạn cần phải đi qua các mã một chút và tìm thấy các hoạt động mà làm nhiệm vụ chính cho bạn và sử dụng hoạt động đó và mọi thứ khác nó sẽ chăm sóc. –

+0

làm thế nào đây là một câu trả lời đúng !! một số giải thích sẽ là tốt !! – Fay007

15

Bạn đang cố truy cập máy quét ZXing theo hai cách mâu thuẫn trực tiếp. Mục đích của IntentIntegrator mà ZXing cung cấp là làm cho việc truy cập ứng dụng máy quét bên ngoài trở nên đơn giản hơn bằng cách xây dựng Intent cho bạn với tất cả các hằng số và cờ thích hợp. Nếu bạn không muốn cài đặt và chạy ứng dụng máy quét bên ngoài từ Android Market trên thiết bị, IntentIntegrator không dành cho bạn. Điều này cũng đúng với mã Java bạn đã đăng, vì nó chủ yếu là cùng Intent mà trình tích hợp sẽ tạo ra để khởi chạy ứng dụng bên ngoài.

Nếu bạn tích hợp ZXing vào dự án của mình làm thư viện, thì các thành phần trở thành một phần của ứng dụng của bạn và chúng phải được tham chiếu như vậy. Ví dụ: cần phải thêm tuyên bố trong AndroidManifest.xml như:

<activity android:name="com.google.zxing.client.android.CaptureActivity" 
    android:screenOrientation="landscape" 
    android:configChanges="orientation|keyboardHidden" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:windowSoftInputMode="stateAlwaysHidden"> 
    <intent-filter> 
    <action android:name="com.google.zxing.client.android.SCAN"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter> 
</activity> 

Đảm bảo bạn đã sử dụng đúng tên ở đây cho hoạt động và hành động vì chúng phải tham khảo thư viện. Sau đó, bạn có thể khởi chạy Hoạt động quét từ mã Java của bạn bằng cách sử dụng sau đây:

int REQUEST_SCAN; //Request code for Intent result 
String packageString = "com.yourapplication.packagename"; 

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
intent.setPackage(packageString); 
//Add any optional extras to pass 
intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
//Launch 
startActivityForResult(intent, REQUEST_SCAN); 

Thông báo các hành động Ý định phù hợp với tuyên bố trong biểu hiện, nhưng GÓI là ứng dụng này, không phải là ứng dụng Android Market ZXing.

HTH

+0

Asks Hoàn thành tác vụ bằng ứng dụng Máy ảnh và Ứng dụng của tôi khi tôi nhấp vào quét. Làm thế nào tôi có thể loại bỏ ứng dụng của tôi trong cửa sổ bật lên để đặt Ứng dụng Camera làm mặc định. Tôi đã thử xóa bộ lọc ý định bằng hành động "com.google.zxing.client.android.SCAN", thậm chí không cung cấp cửa sổ bật lên ngay bây giờ. –

+0

điều này đã giúp tôi, cảm ơn bạn! – Yohannes

0

Bạn cần phải làm theo bước như được đưa ra bởi các liên kết

http://www.androidaz.com/development/zxing-qr-reader-direct-integration

bạn có thể tải core.jar từ

http://repo1.maven.org/maven2/com/google/zxing/core/2.2/

Trên đây đang làm việc cho tôi , nếu bạn gặp lỗi, chỉ cần đặt core-2.2.jar vào libs và dọn dẹp dự án của bạn

+0

bạn có thể vui lòng cho tôi biết tại sao kết quả không hiển thị của nó không. tôi đã làm mọi thứ thành công nhưng không có tin nhắn bánh mì nướng ... –

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