2011-11-11 13 views
13

Dodałem aplikację Android Zying do mojej aplikacji jako biblioteki. Następnie edytował plik Manifest.xml i próbował użyć integratora Intent. Brak szczęścia.Jak zintegrować Zxing bez instalowania aplikacji do skanowania kodów kreskowych?

Pobieranie aplikacji do skanowania jest całkowicie nieuzasadnione.

Przy okazji:

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 ,, sprawdź to pytanie, jeśli to pomaga .. –

+0

Witam, to [strona dla java i bitmapy] (http://code.google.com/p/zxing/wiki/DeveloperNotes), jeśli zrobisz zdjęcie aparatem, a potem zrobisz zdjęcie fototerapią, zadziała, ale to tylko pomysł. – kameny

+0

@Onuray, jak rozwiązałeś problem? – Erum

Odpowiedz

4

+1 do Twojego pytania. Próbowałem tego, ale bez powodzenia, dodałem jego pliki kodu w mojej aplikacji. Jeśli chcesz, możesz to zrobić. Tutaj ia link:

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

Jeśli masz lepszy sposób następnie daj mi znać.

+0

Dodawanie projektu androida zying jako biblioteki powinno wystarczyć, ale nie działa. W każdym razie, więc dodałeś kody źródłowe i wykorzystałeś połączenie intencyjne i zadziałało? –

+0

musisz przejść przez kody i znaleźć działanie, które wykonujesz główne zadanie i wykorzystasz to działanie i wszystko, co będzie zajmować. –

+0

jak to jest poprawna odpowiedź !! niektóre wyjaśnienia byłyby dobre !! – Fay007

15

Próbujesz uzyskać dostęp do skanera ZXing na dwa bezpośrednio sprzeczne sposoby. Zadaniem modelu IntentIntegrator dostarczanego przez ZXing jest ułatwienie dostępu do zewnętrznej aplikacji skanera poprzez zbudowanie dla Ciebie Intencji z odpowiednimi stałymi i flagami. Jeśli nie chcesz instalować i uruchamiać zewnętrznej aplikacji skanera z Android Market na urządzeniu, IntentIntegrator nie jest dla Ciebie. Jest to również zgodne z opublikowanym przez ciebie kodem Java, ponieważ jest to zasadniczo to samo intencje, jakie stworzy integrator, aby uruchomić zewnętrzną aplikację.

Jeśli integrujesz ZXing z projektem jako biblioteką, komponenty stają się częścią Twojej aplikacji i muszą się do nich odwoływać. Na przykład deklaracja w AndroidManifest.xml należy dodać takie jak:

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

Upewnij się, że stosowane tu poprawną nazwę dla aktywności i działania, ponieważ mają one odwoływać się do biblioteki. Następnie można uruchomić aktywność skanera z kodu Java przy użyciu następujących:

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

Zawiadomienie Intent działanie odpowiada deklaracji w manifeście, ale pakiet jest to aplikacja, a nie aplikacja Android Market ZXing.

HTH

+0

Pyta Wykonuje czynność za pomocą aplikacji Aparat i Moja aplikacja po kliknięciu skanu. Jak mogę pozbyć się mojej aplikacji w okienku popup, aby ustawić aplikację Camera jako domyślną. Próbowałem usunąć filtr zamiaru za pomocą działania "com.google.zxing.client.android.SCAN", które nie udostępnia teraz nawet okienka. –

+0

to pomogło mi, dziękuję! – Yohannes

0

Trzeba podążać krok podane przez link

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

można pobrać core.jar z

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

Powyższy pracuje dla mnie , jeśli pojawi się błąd, po prostu umieść plik core-2.2.jar w bibliotekach i wyczyść projekt

+0

czy możesz mi powiedzieć, dlaczego nie wyświetla wyników. Zrobiłem wszystko z powodzeniem, ale nie otrzymałem wiadomości Toast ... –

Powiązane problemy