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
http://stackoverflow.com/questions/7510430/qr-reader-in-android/7510615#7510615 ,, controlla questa domanda, se questo aiuta .. –
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
@Onimedi come hai risolto il problema? – Erum