2017-01-28 19 views
2

Я пытаюсь создать приложение, которое читает QRCode из IDCard, который будут использовать все пользователи моей компании.ZXing автоматический старт с передней камерой

Я хотел бы использовать переднюю камеру по умолчанию при запуске приложения. Мне удалось сделать это с задней камерой, но в идеале я не хочу использовать кнопку для переключения.

MainActivity:

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler { 
    private static final int REQUEST_CAMERA = 1; 
    private ZXingScannerView mScannerView; 

    Passageiros mPassageiro; // 

    Collection<Passageiros> listaPassageiros; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     mScannerView = new ZXingScannerView(this){ 

      @Override 
      protected IViewFinder createViewFinderView(Context context) { 
       return new CustomZXingScannerView(context); 
      } 

     }; 
     List<BarcodeFormat> formats = new ArrayList<>(); 

     formats.add(BarcodeFormat.QR_CODE); 

     setContentView(mScannerView); 

     int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
     if (currentapiVersion >= android.os.Build.VERSION_CODES.M) { 
      if (checkPermission()) { 
       Toast.makeText(getApplicationContext(), "Permission already granted", Toast.LENGTH_LONG).show(); 

      } else { 
       requestPermission(); 
      } 

     } 
    } 

... 

} 

Как я могу это сделать?

+0

@ Daniel Kaparunakis Thx для пересмотра. –

ответ

1

Глядя на источники библиотеки ZXing

ZXingCameraView расширяет BarcodeScannerView, который имеет частный CameraWrapper, который можно установить с помощью метода setupLayout. CameraWrapper позволяет вам инициализировать com.android.Camera.

И как выбрать нужную из доступных камер показан в этом вопросе: How do I open the "front camera" on the Android platform?

Edit: На самом деле есть даже ZXing CameraUtils class выбора камеры на задней стороне устройства. Просто измените его, чтобы вернуть идентификатор передней камеры и передать этот идентификатор в startCamera (frontCameraId) на ZXingCameraView.

+0

Мне жаль, но я все еще учился. Держу пари, где ясна, но можешь ли ты объяснить мне больше? –

+0

Получил. Я поместил mScannerView.startCamera (1); on my onResume –

+0

Хорошо, что он работает. Примите ответ тогда;) – shtolik