Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ZXing android use front camera

Tags:

android

zxing

I'm trying to build a QR Code reader following this tutorial

http://code.tutsplus.com/tutorials/android-sdk-create-a-barcode-reader--mobile-17162

I managed to get everything working, except that I need the camera to be the front camera of my device instead of the rear camera. I can't find any place in the tutorial that allows me to change this. I tried following this answer, but I still could not get it to work.

Mainly, my issue is with importing the library. I get the following error.

operator is not allowed for source level below 1.7

When I set my compiler settings to 1.7, I get this

Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead

I'm not exactly very proficient with Android and I apologize if it might not be a good question.

So, any way for me to use ZXing with the front camera in my app? Any links?

Thank you very much.

like image 647
charpi Avatar asked Jun 02 '14 16:06

charpi


People also ask

Can you use front camera for QR code?

Having the option to scan their ID's QR code via the front cam is more convenient than lifting the tablet device and use its back camera to scan their QRs.

How do I scan QR codes with ZXing Android?

On click of button_scan_qr_code , CaptureActivity will start scanning using default camera. Once it scans any QR code, it sends back the result to onActivityResult the MainActivity . ZXing also provides online QR Code Generator. Enter the required fields, generate and scan it to get the results.


2 Answers

The source code uses Java 7. Android does not require Java <= 6. You can see that the build provided in the project happily feeds Java 7 bytecode to dex and produces a working app. I am not sure what tool you are using that suggests otherwise. Maybe it is old.

You should not need to copy and compile the project's code though. Why is that necessary? use the core.jar file.

You don't need any of this to use the front camera. Just invoke by Intent (https://github.com/zxing/zxing/wiki/Scanning-Via-Intent) and set extra SCAN_CAMERA_ID to the ID of the camera you want -- usually 1 for the front one.

Example:

        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        intent.putExtra("SCAN_CAMERA_ID", 1);
like image 56
Sean Owen Avatar answered Oct 30 '22 17:10

Sean Owen


If you use IntentIntegrator, you can use setCameraId() to specify the front camera:

IntentIntegrator integrator = new IntentIntegrator(yourActivity);
integrator.setCameraId(1);
integrator.initiateScan();
like image 26
Hiroshi Ichikawa Avatar answered Oct 30 '22 17:10

Hiroshi Ichikawa