2011-12-27 12 views

Odpowiedz

0

UPDATE:

Jak FAQ Jeśli ZXing został zmodernizowany, ponieważ napisałem tę odpowiedź, poniżej treść nie jest już dokładna:

Czytałeś ZXing na FAQ?

Czy można z niego korzystać na urządzeniach z systemem Android tylko z przednim aparatem, takim jak tablet Nexus 7? W tej chwili nie. Aplikacja wymaga kamery o numerze . W systemie Android tylko tylne kamery są uważane za "prawdziwe" kamery, , a więc urządzenia z tylko przednim aparatem są niekompatybilne. Co więcej, obsługa interfejsu API dla kamer przednich pojawiła się w późniejszym wydaniu Androida niż obecnie wymagana przez aplikację. Kamery przednie mają zwykle mniej czułe matryce CCD i brak autofokusa, co utrudnia ich skanowanie.

Urządzenie obsługuje tylko urządzenia z przednią kamerą .

Poza tym, chociaż myślę, że nie jest to całkowicie niemożliwe, jeśli można podłączyć przedni aparat. Dlatego myślę, że należy spojrzeć na Sekcji Camera Android Dokumentacja: here i here

+0

(To już nie jest prawdą, a element najczęściej zadawanych pytań został usunięty.) –

+0

@SeanOwen Dzięki, pomijam moją odpowiedź – dumbfingers

5

Najnowsza wersja Barcode Scanner jak również ZXing source code obsługuje teraz przodu stoi aparat.

+0

Szukam jej w ustawieniach, ale nie mogę znaleźć ustawień. Jak to robisz? – Natim

+0

@Natim Pamiętam, że jest on obsługiwany automatycznie. Kamera tylna jest używana domyślnie, ale w przypadku braku takiej kamery używana jest kamera skierowana do przodu. –

+0

Moja tylna kamera jest uszkodzona, chciałbym spróbować z przednim. – Natim

9

Wykonaj następujące kroki:

1) Pobierz kod źródłowy tutaj: http://code.google.com/p/zxing/source/checkout

2) import kodu źródłowego jako nowego projektu w Eclipse i sprawiają, korzeń projektu będzie folder/Android (znaleźć w kodzie źródłowym).

3) Upewnij się, że skopiowałeś do tego projektu wszystko z/core/src, ponieważ wymaga tego kod źródłowy zaimportowany w kroku 2.

4) Upewnij się, że ustawiłeś kompilator na Java 1.6 w Eclipse (kliknij prawym przyciskiem myszy na twoim projekcie, właściwościach, Kompilatorze Java). W przeciwnym razie dostaniesz błędy dotyczące adnotacji @Override.

5) Edycja com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface klasy następująco:

while (index < numCameras) { 
     Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); 
     Camera.getCameraInfo(index, cameraInfo); 


     if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 
      break; 
     } 
     /*//Original code (gets the back camera. This is NOT what you want!) 
     if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { 
    break; 
    }*/ 
    index++; 
} 

5) Dodać do tego projektu jako biblioteka, jak łatwo opisane tutaj: http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

6) Odwołaj ten projekt do swojego prawdziwego projektu (kliknij prawym przyciskiem myszy na rzeczywistym projekcie, właściwościach, ścieżce budowania Java, projektach, dodaniach).

7) Gotowe! =)

Mam nadzieję, że to pomaga.

+0

ładny opis Tiago :) –

+0

Hai Tiago, zaimplementowałam przedni aparat, jak nalegałeś. Ale nie skanuje i nie otrzymuje wyniku. Wyświetlany jest prosty widok z kamery. Jeśli pokażę kod kreskowy przed nim. nic się nie dzieje. Brak śledzenia stosu. Co może być problemem? Czy mógłbyś mi pomóc? –

+0

Problem polega na tym, że przedni aparat, którego używasz, nie ma autofokusa, przez co naprawdę trudno jest odczytać kody kreskowe. Kamery przednie zwykle mają ostrość (aby uczynić je tańszymi), co sprawia, że ​​nie są dobre dla bliskich obiektów. Miałem też problemy z przednimi kamerami do odczytu kodów kreskowych z powodu braku autofokusa. Czasami zajmie to więcej niż 1 minutę, zanim zdołam rozpoznać kod kreskowy. Innym razem nie mogłem sprawić, żeby kamera odczytała kod kreskowy w ogóle. Problem nie leży w oprogramowaniu, ale w samym aparacie. – Tiago

Powiązane problemy