2011-11-11 14 views
13

Ho aggiunto un'applicazione Android Zying alla mia applicazione come libreria. Quindi ha modificato Manifest.xml e ha provato a utilizzare Intent integrator. Senza fortuna.Come integrare Zxing senza installare l'applicazione del lettore di codici a barre?

Scaricare l'app per scanner è assolutamente irragionevole.

A proposito:

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 ,, controlla questa domanda, se questo aiuta .. –

+0

Ciao, questa [pagina per java e bitmap] (http://code.google.com/p/zxing/wiki/DeveloperNotes), se si scatta una foto con la fotocamera e successivamente si dà la foto scattata, la soluzione funzionerà, ma questa è solo un'idea. – kameny

+0

@Onimedi come hai risolto il problema? – Erum

risposta

4

+1 per la tua domanda. Ho provato questo, ma senza fortuna ho aggiunto i suoi file di codice nella mia app. Se lo desideri, puoi farlo anche tu. Qui ia un link:

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

Se si ottiene un modo migliore poi fatemi sapere.

+0

L'aggiunta di un progetto Android zying come una libreria dovrebbe fare il trucco, ma non funziona. Ad ogni modo, hai aggiunto i codici sorgente e la chiamata intentata e ha funzionato? –

+0

è necessario passare un po 'attraverso i codici e trovare l'attività che svolge il compito principale per te e utilizzare quell'attività e tutto il resto si prenderà cura di te. –

+0

come questa è una risposta corretta !! alcune spiegazioni sarebbero andate bene !! – Fay007

15

Si sta tentando di accedere allo scanner ZXing in due modi direttamente in conflitto. Lo scopo di IntentIntegrator fornito da ZXing è quello di semplificare l'accesso all'app dello scanner esterno costruendo l'Intento con tutte le costanti e le flag appropriate. Se non si desidera installare ed eseguire l'app scanner esterna da Android Market su un dispositivo, IntentIntegrator non fa per voi. Questo vale anche per il codice Java che hai postato, poiché è essenzialmente lo stesso che l'integratore avrebbe dovuto creare per avviare l'applicazione esterna.

Se si integra ZXing nel progetto come libreria, i componenti diventano parte dell'applicazione e devono essere referenziati come tali. Ad esempio, una dichiarazione in AndroidManifest.xml deve essere aggiunto come ad esempio:

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

Assicurarsi è stato utilizzato il nome corretto qui per l'attività e l'azione, in quanto questi devono fare riferimento alla libreria. Poi si può avviare l'attività dello scanner dal codice Java utilizzando il seguente:

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

Avviso l'azione Intento corrisponde la dichiarazione nel manifesto, ma il pacchetto è questa applicazione, non l'applicazione Android Market ZXing.

HTH

+0

Chiede Completa l'azione utilizzando l'app Fotocamera e La mia app quando faccio clic sulla scansione. Come posso sbarazzarmi della mia app nel popup per rendere l'app fotocamera predefinita. Ho provato a rimuovere il filtro intent con l'azione "com.google.zxing.client.android.SCAN", che non fornisce nemmeno il popup adesso. –

+0

questo mi ha aiutato, grazie! – Yohannes

0

è necessario seguire passo, come indicato dal link

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

è possibile scaricare core.jar da

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

È possibile che questo sta lavorando per me , se ottieni un errore inserisci semplicemente il core-2.2.jar in libs e ripulisci il tuo progetto

+0

per favore, dimmi perché non mostra risultati. Ho fatto tutto con successo ma nessun messaggio di Toast ... –

Problemi correlati