2011-11-11 31 views
13

我將Zying android應用程序添加到我的應用程序庫中。然後編輯Manifest.xml並嘗試使用意圖集成器。沒有運氣。如何在不安裝條形碼掃描儀應用程序的情況下集成Zxing?

下載掃描儀應用程序是完全不合理的。

順便說一句:

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 ,,檢查這個問題,如果這有幫助.. –

+0

嗨,這[java和位圖的頁面]( http://code.google.com/p/zxing/wiki/DeveloperNotes),如果您使用相機拍攝照片,然後將拍攝的照片弄髒,它會起作用,但這只是一個想法。 – kameny

+0

@Onuray你如何解決問題? – Erum

回答

4

+1了你的問題。我試過這個,但沒有運氣,然後我在我的應用中添加了代碼文件。如果你希望你也可以做到這一點。這裏保險業監督的鏈接:

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

如果你得到什麼更好的方法,然後讓我知道。

+0

將zying android項目添加爲庫應該可以做到這一點,但無法正常工作。無論如何,所以你添加了源代碼並使用了意向調用並且它工作正常? –

+0

你需要通過一些代碼,找到爲你完成主要任務的活動,並使用該活動以及其他一切需要注意的事項。 –

+0

這是一個正確的答案!一些解釋會是很好的! – Fay007

15

您試圖以兩種直接衝突的方式訪問ZXing掃描儀。 ZXing提供的IntentIntegrator的目的是通過使用所有適當的常量和標誌爲您構建Intent,從而簡化對外部掃描程序應用程序的訪問。 如果您不想在設備上安裝並運行Android電子市場中的外部掃描儀應用程序,則IntentIntegrator不適合您。這也適用於您發佈的Java代碼,因爲它與本集成商爲啓動外部應用程序而創建的意圖基本相同。

如果您將ZXing作爲一個庫集成到您的項目中,那麼這些組件將成爲您的應用程序的一部分,並且它們必須如此引用。例如,需要在AndroidManifest.xml中聲明,如添加:

<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> 

確保您在這裏使用了正確的名稱爲活動和行動,因爲這些都引用該庫。然後,你可以使用下面的啓動從Java代碼掃描器活動:

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); 

通知的意圖行動的聲明相匹配的清單,但包是這個應用程序,而不是Android Market的應用斑馬線。

HTH

+0

詢問當我點擊掃描時,使用相機應用和我的應用完成操作。如何在彈出窗口中刪除我的應用程序以將相機應用程序設置爲默認值。我嘗試使用「com.google.zxing.client.android.SCAN」操作刪除意圖過濾器,該操作現在甚至不提供彈出窗口。 –

+0

這幫了我,謝謝! – Yohannes

相關問題