Barcode scanner library for Android, based on the ZXing decoder

Overview

ZXing Android Embedded

Barcode scanning library for Android, using ZXing for decoding.

The project is loosely based on the ZXing Android Barcode Scanner application, but is not affiliated with the official ZXing project.

Features:

  1. Can be used via Intents (little code required).
  2. Can be embedded in an Activity, for advanced customization of UI and logic.
  3. Scanning can be performed in landscape or portrait mode.
  4. Camera is managed in a background thread, for fast startup time.

A sample application is available in Releases.

By default, Android SDK 24+ is required because of zxing:core 3.4.0. To support SDK 14+, see Older SDK versions.

Adding aar dependency with Gradle

From version 4.x, only Android SDK 24+ is supported by default, and androidx is required.

Add the following to your build.gradle file:

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.journeyapps:zxing-android-embedded:4.2.0'
    implementation 'androidx.appcompat:appcompat:1.0.2'
}

android {
    buildToolsVersion '28.0.3' // Older versions may give compile errors
}

Older SDK versions

For Android SDK versions < 24, you can downgrade zxing:core to 3.3.0 or earlier for Android 14+ support:

repositories {
    mavenCentral()
}

dependencies {
    implementation('com.journeyapps:zxing-android-embedded:4.2.0') { transitive = false }
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'com.google.zxing:core:3.3.0'
}

android {
    buildToolsVersion '28.0.3'
}

You'll also need this in your Android manifest:

<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />

No guarantees are made on support for older SDK versions - you'll have to test to make sure it's compatible.

Hardware Acceleration

Hardware acceleration is required since TextureView is used.

Make sure it is enabled in your manifest file:

    <application android:hardwareAccelerated="true" ... >

Usage with IntentIntegrator

Launch the intent with the default options:

new IntentIntegrator(this).initiateScan(); // `this` is the current Activity


// Get the results:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if(result != null) {
        if(result.getContents() == null) {
            Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
        }
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Use from a Fragment:

IntentIntegrator.forFragment(this).initiateScan(); // `this` is the current Fragment

// If you're using the support library, use IntentIntegrator.forSupportFragment(this) instead.

Customize options:

IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);
integrator.setPrompt("Scan a barcode");
integrator.setCameraId(0);  // Use a specific camera of the device
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(true);
integrator.initiateScan();

See IntentIntegrator for more options.

Generate Barcode example

While this is not the primary purpose of this library, it does include basic support for generating some barcode types:

try {
  BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
  Bitmap bitmap = barcodeEncoder.encodeBitmap("content", BarcodeFormat.QR_CODE, 400, 400);
  ImageView imageViewQrCode = (ImageView) findViewById(R.id.qrCode);
  imageViewQrCode.setImageBitmap(bitmap);
} catch(Exception e) {

}

No customization of the image is currently supported, including changing colors or padding. If you
require more customization, copy and modify the source for the encoder.

Changing the orientation

To change the orientation, specify the orientation in your AndroidManifest.xml and let the ManifestMerger to update the Activity's definition.

Sample:

<activity
		android:name="com.journeyapps.barcodescanner.CaptureActivity"
		android:screenOrientation="fullSensor"
		tools:replace="screenOrientation" />
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setOrientationLocked(false);
integrator.initiateScan();

Customization and advanced options

See EMBEDDING.

For more advanced options, look at the Sample Application, and browse the source code of the library.

This is considered advanced usage, and is not well-documented or supported.

Android Permissions

The camera permission is required for barcode scanning to function. It is automatically included as part of the library. On Android 6 it is requested at runtime when the barcode scanner is first opened.

When using BarcodeView directly (instead of via IntentIntegrator / CaptureActivity), you have to request the permission manually before calling BarcodeView#resume(), otherwise the camera will fail to open.

Building locally

./gradlew assemble

To deploy the artifacts the your local Maven repository:

./gradlew publishToMavenLocal

You can then use your local version by specifying in your build.gradle file:

repositories {
    mavenLocal()
}

Sponsored by

JourneyApps - Creating business solutions with mobile apps. Fast.

License

Licensed under the Apache License 2.0

Copyright (C) 2012-2018 ZXing authors, Journey Mobile

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • How to capture an image?

    How to capture an image?

    In my app i'm using scanner app, and on the scanning screen i want to take a picture on a button click. So what class or how i can capture the image using the same library, otherwise i have to open another camera and then have to call camera.takePicture().

    So i want to use just scanner camera to capture the image.

    opened by Bajranghudda1 27
  • setScreenOrientation() property for IntentIntegrator

    setScreenOrientation() property for IntentIntegrator

    It would be awesome to have a setScreenOrientation method for IntentIntegrator class. I am using the project by including the dependency so i am not allowed to edit any code inside it. If it was available it would be great for gradle projects.

    opened by garenyondem 23
  • No resource identifier zxing_framing_rect

    No resource identifier zxing_framing_rect

    Can someone help me out.

    I have added zxing core library and zxing-android-embedded library to my application. My aim is to create an activity which enables continuous scanning using the component CompoundBarcodeView

    Here is part of my gradle file:

    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        //6.5.87'
        //compile 'com.android.support:appcompat-v7:21.0.2'
        compile project(':fab_library')
        compile project(':kigamba_libs')
        compile project(':lib_bootstrap2')
        compile project(':library_material_ripple_master')
        //compile 'com.afollestad:material-dialogs:0.7.7.0'
        compile 'com.google.android.gms:play-services:8.1.0'
        //compile 'com.android.support:appcompat-v7:22.1.1'
        compile 'com.android.support:appcompat-v7:21.0.2'
        compile 'com.google.android.gms:play-services-ads:8.1.0'
        compile 'com.google.android.gms:play-services-identity:8.1.0'
        compile 'com.google.android.gms:play-services-gcm:8.1.0'
        compile 'com.journeyapps:zxing-android-embedded:3.0.3@aar'
        compile 'com.google.zxing:core:3.2.0'
    }
    

    Here is the layout custom_barcode_scanner.xml

    <?xml version="1.0" encoding="utf-8"?>
    <merge xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           xmlns:app="http://schemas.android.com/apk/res-auto">
    
        <com.journeyapps.barcodescanner.BarcodeView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/zxing_barcode_surface"
            app:zxing_framing_rect_width="250dp"
            app:zxing_framing_rect_height="50dp"/>
    
        <com.journeyapps.barcodescanner.ViewfinderView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/zxing_viewfinder_view"/>
    
        <TextView
            android:id="@+id/zxing_status_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:background="@color/zxing_transparent"
            android:text="@string/zxing_msg_default_status"
            android:textColor="@color/zxing_status_text"/>
    
    </merge>
    

    Here is layout file activity_scanning.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin">
    
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <com.journeyapps.barcodescanner.CompoundBarcodeView
                android:id="@+id/zxing_barcode_scanner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:zxing_scanner_layout="@layout/custom_barcode_scanner">
            </com.journeyapps.barcodescanner.CompoundBarcodeView>
    
        </LinearLayout>
    
        <Button
            android:id="@+id/switch_flashlight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ON"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:onClick="switchFlashlight"/>
    </RelativeLayout>
    

    Whenever I try to run the application I get the error that the attribute zxing_framing_rect_width cannot be found.

    Could someone help me out

    opened by ghost 19
  • Preview Scrambled on Google Glass

    Preview Scrambled on Google Glass

    Hi, thank you for making this project, it is extremely helpful.

    When I use your method for adding the aar dependency with Gradle, it compiles and starts up fine, except that with Google Glass, the camera preview is all scrambled and fragmented (see screenshot). I found a SO answer (http://stackoverflow.com/a/22510862/3957976) that mentions there was a fix for this in the camera manager of the source. Is there any way to have this fix included or is that out of the scope of the minimalist idea? Thanks for your time and sorry if this has already been implemented and I'm wasting your time, still learning here. screenshot_2014-08-20-12-32-58 1

    bug 
    opened by noahdietz 19
  • Crash : java.lang.ArithmeticException: divide by zero

    Crash : java.lang.ArithmeticException: divide by zero

    Description of the problem:

    Which library version are you using? 3.5.0.

    Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5, Android 5.0)

    Samsung - Android 7

    Does the same happen on other devices or an emulator? No

    Can you reproduce the issue in the sample project included with the library? If not, can you provide your own sample project or sample code that produces this error? No

    In the case of an error do you have a stack trace or adb logs?

    Fatal Exception: java.lang.ArithmeticException: divide by zero
           at com.journeyapps.barcodescanner.CameraPreview.calculateFrames(SourceFile:389)
           at com.journeyapps.barcodescanner.CameraPreview.previewSized(SourceFile:461)
           at com.journeyapps.barcodescanner.CameraPreview.access$300(SourceFile:59)
           at com.journeyapps.barcodescanner.CameraPreview$3.handleMessage(SourceFile:199)
           at android.os.Handler.dispatchMessage(Handler.java:98)
           at android.os.Looper.loop(Looper.java:154)
           at android.app.ActivityThread.main(ActivityThread.java:6692)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
    
    opened by yashasvigirdhar 17
  • Preview stretch

    Preview stretch

    Hi,

    Preview size is stretching when camera and preview orientation are different. It should be fixed :) For example: I/DisplayConfiguration﹕ Preview: 600x800; Scaled: 1800x2400; Want: 1280x752

    opened by Chesteer89 17
  • It takes lots of time and sometimes QRCode is not getting scanned

    It takes lots of time and sometimes QRCode is not getting scanned

    Description of the problem:

    I am using for scanning QRCode but it is not getting scanned and when it is then it takes lots of time

    Which library version are you using? 3.5.2

    **Which phone/tablet are you using, and which Android version does it run? . Moto G, Android 5.1

    Does the same happen on other devices or an emulator? Tested in MotoG and Samsung J2

    opened by sana080 15
  • zxing3.6.0 / support:appcompat-v7 error...

    zxing3.6.0 / support:appcompat-v7 error...

    Description of the problem:

    I try...

    • Create New Project

    • target sdk version 28, min sdk version 19

    • compile sdk version 28

    • insert gradle dependencies : implementation 'com.journeyapps:zxing-android-embedded:3.6.0'

    • implementation 'com.android.support:appcompat-v7:28.0.0' <-Error....

    All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 28.0.0, 25.3.1. Examples include com.android.support:animated-vector-drawable:28.0.0 and com.android.support:support-media-compat:25.3.1 less... (⌘F1) There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion).

    How can fix...??? T_T

    
    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "com.example.yoonho.jitest"
            minSdkVersion 19
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation 'com.android.support:appcompat-v7:28.0.0'     // <-Error Here!!!
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    
        implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
    }
    
    

    Which library version are you using? E.g. 3.6.0.

    **Which phone/tablet are you using, and which Android version does it run? ** galaxy s4

    Does the same happen on other devices or an emulator? same happen on other emulator

    opened by YoonHo-Lee 14
  • Zxing not working with Tabs

    Zxing not working with Tabs

    I just have a basic continious scan activity but when i tried to implement a tabbed view with the app, the zxing barcodeview no longer worked and it just is a black box with the text on the bottom. PLEASE HELP with this problem....???

    opened by flynnben123 14
  • Failed to configure camera

    Failed to configure camera

    Camera not working when rotating device. Used TextureView, Nexus 9 (API 23) Logs D/CameraInstance: Opening camera D/CameraInstance: Closing camera D/CameraInstance: Opening camera D/CameraInstance: Configuring camera I/CameraManager: Camera Display Orientation: 90 W/CameraManager: Failed to set rotation. W/CameraManager: Camera rejected even safe-mode parameters! No configuration E/CameraInstance: Failed to configure camera E/CameraInstance: java.lang.RuntimeException: getParameters failed (empty parameters) E/CameraInstance: at android.hardware.Camera.native_getParameters(Native Method) E/CameraInstance: at android.hardware.Camera.getParameters(Camera.java:1890) E/CameraInstance: at com.journeyapps.barcodescanner.camera.CameraManager.setParameters(CameraManager.java:365) E/CameraInstance: at com.journeyapps.barcodescanner.camera.CameraManager.configure(CameraManager.java:141) E/CameraInstance: at com.journeyapps.barcodescanner.camera.CameraInstance$4.run(CameraInstance.java:178) E/CameraInstance: at android.os.Handler.handleCallback(Handler.java:739) E/CameraInstance: at android.os.Handler.dispatchMessage(Handler.java:95) E/CameraInstance: at android.os.Looper.loop(Looper.java:148) E/CameraInstance: at android.os.HandlerThread.run(HandlerThread.java:61) E/Camera: Error 2 E/Camera: Error 2 E/Camera: Error 2 E/Camera: Error 2 D/CameraPreview: pause() D/CameraInstance: Closing camera

    May be there is a way to use SurfaceView and set its size equal to BarcodeView's size, not large? Thank you.

    opened by ghost 14
  • Espresso Support

    Espresso Support

    Hi, I am now using Zxing Embedded 3.0.2 and am trying to figure out on how to mock a result of a scan; is there a way in which I can prepare the application under test with some mock BarcodeResult?

    I am using the CompoundBarcodeScanner which is placed within a fragment and I want to test whether the callback execution (BarcodeCallback) leads to the proper results. with kind regards, Jeroen

    enhancement todo 
    opened by commjoen 14
  • cameraSettings.setAutoTorchEnabled(true) No callback to the app

    cameraSettings.setAutoTorchEnabled(true) No callback to the app

    Description of the problem:

    When autoTorch flag is enabled there is no mechanism to provide callback to the app when torch state is changed.

    Which library version are you using? E.g. 3.2.0. 4.3.0

    Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5, Android 5.0) Samsung S22 Android 13

    Does the same happen on other devices or an emulator? Yes

    Can you reproduce the issue in the sample project included with the library? If not, can you provide your own sample project or sample code that produces this error? Yes

    In the case of an error do you have a stack trace or adb logs? Not applicable

    opened by manishb-azuga 0
  • Ho to set Zoom in Camera using Zxing

    Ho to set Zoom in Camera using Zxing

    I want to set Zoom in Camera but not able achieve this using Zxing, please suggest any solution.

    I'm currently using following version :

    implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
    
    opened by vtangade 1
  • Inside Fragment -  Fatal Exception: java.lang.IllegalStateException: Attempting to launch an unregistered ActivityResultLauncher with contract com.journeyapps.barcodescanner.ScanContract@4d9510d and input com.journeyapps.barcodescanner.ScanOptions@447a8c2. You must ensure the ActivityResultLauncher is registered before calling launch().

    Inside Fragment - Fatal Exception: java.lang.IllegalStateException: Attempting to launch an unregistered ActivityResultLauncher with contract com.journeyapps.barcodescanner.ScanContract@4d9510d and input com.journeyapps.barcodescanner.ScanOptions@447a8c2. You must ensure the ActivityResultLauncher is registered before calling launch().

    Description of the problem:

    Facing this crash on few devices. We're using scanner inside Fragment and the launcher is initialise on the class level like below:

    private val barcodeLauncher = registerForActivityResult(
        ScanContract()
    ) { result: ScanIntentResult ->
        if (!result.contents.isNullOrEmpty()) {
            isQRScanned = true
            validateGiftCard(result.contents)
        }
    }
    

    And on button click action we're calling it like below:

    private fun launchScanner() { isQRScanned = false val options = ScanOptions() options.setDesiredBarcodeFormats(ScanOptions.QR_CODE) options.setPrompt("Scan a barcode or QR Code") options.setCameraId(0) options.setOrientationLocked(true) options.setBeepEnabled(false) options.setBarcodeImageEnabled(true) barcodeLauncher.launch(options) }

    But facing this crash on some devices in the live App - We're not able to reproduce it on our devices:

    Fatal Exception: java.lang.IllegalStateException: Attempting to launch an unregistered ActivityResultLauncher with contract com.journeyapps.barcodescanner.ScanContract@4d9510d and input com.journeyapps.barcodescanner.ScanOptions@447a8c2. You must ensure the ActivityResultLauncher is registered before calling launch(). at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:168) at androidx.fragment.app.Fragment$10.launch(Fragment.java:3616) at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47) at ae.etisalat.smiles.kt.presentation.smilesubscription.subscribesubscription.SmilesSubscriptionFragment.launchScanner(SmilesSubscriptionFragment.kt:243) at ae.etisalat.smiles.kt.presentation.smilesubscription.subscribesubscription.SmilesSubscriptionFragment.initUI$lambda-5(SmilesSubscriptionFragment.kt:229) at ae.etisalat.smiles.kt.presentation.smilesubscription.subscribesubscription.SmilesSubscriptionFragment.$r8$lambda$JXL3kFSxrqsuGf81Wbw_3D-rZBw(SmilesSubscriptionFragment.kt) at ae.etisalat.smiles.kt.presentation.smilesubscription.subscribesubscription.SmilesSubscriptionFragment$$InternalSyntheticLambda$0$a6a1f6be84fe10956cf050fb962ba033073d76d475a021e2c9452c20251158c9$1.onClick(SmilesSubscriptionFragment.java:2) at android.view.View.performClick(View.java:7281) at android.view.View.performClickInternal(View.java:7255) at android.view.View.access$3600(View.java:828) at android.view.View$PerformClick.run(View.java:27924) at android.os.Handler.handleCallback(Handler.java:900) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8387) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)

    Which library version are you using? E.g. 3.2.0. implementation('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } implementation 'com.google.zxing:core:3.5.0'

    Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5, Android 5.0) Devices starting from Android 10 upto Android 12

    aDoes the same happen on other devices or an emulator? Not able to reproduce.

    Can you reproduce the issue in the sample project included with the library? If not, can you provide your own sample project or sample code that produces this error? Not able to reproduce.

    In the case of an error do you have a stack trace or adb logs?

    opened by MuhammadAjmalZia 1
  • QR Code Scan does not work with 2500 characters

    QR Code Scan does not work with 2500 characters

    Description of the problem:

    I have a 2434 character qrcode but the scanner can't scan the qrcode even if I frame it for a few minutes. I have read the qr code theory and it should be able to contain up to 4296 alphanumeric characters, a much larger number than mine. So I don't understand what the problem is. My app is 2 years old and I have always scanned smaller qr code but now I need to scan bigger qr code, this is to say that the scanner is implemented correctly.

    Which library version are you using? E.g. 3.2.0.

    4.3.0

    Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5, Android 5.0)

    Pixel 5, Android 12 API 32

    Does the same happen on other devices or an emulator?

    It happens both on the emulator and also on other physical devices

    Can you reproduce the issue in the sample project included with the library? If not, can you provide your own sample project or sample code that produces this error?

    It is not my code the problem but the qr code which is quite large. I attach the qr code that I can not scan.

    qrcode

    In the case of an error do you have a stack trace or adb logs?

    No, because there are no exceptions or other errors, it simply does not scan the QR code without giving any error message.

    P.S. The first qr code reader that I download from the app store can read this qr code so it means that it was created correctly (on IOS)

    opened by fctaddia 2
  • Targeting sdk version 31 require <activity> declare android:exported

    Targeting sdk version 31 require declare android:exported

    Description of the problem:

    I've found in merged AndroidManifest.xml there is a activity which we can't add android:exported=false to it. This will cause app can't be installed. Is there anyway we can modify this?

    <activity
                android:name="com.journeyapps.barcodescanner.CaptureActivity"
                android:clearTaskOnLaunch="true"
                android:screenOrientation="sensorLandscape"
                android:stateNotNeeded="true"
                android:theme="@style/zxing_CaptureTheme"
                android:windowSoftInputMode="stateAlwaysHidden" />
    

    Which library version are you using? E.g. 3.2.0.

    4.3.0

    Which phone/tablet are you using, and which Android version does it run? (e.g. Samsung Galaxy S5, Android 5.0)

    Pixel 4a

    Does the same happen on other devices or an emulator?

    Yes

    opened by robert0ng 1
Releases(v4.3.0)
  • v4.3.0(Oct 25, 2021)

    • Minimum SDK version 19, but requires additional config (see readme) for < 24 compatibility.
    • Add ScanOptions and ScanContract for use with registerForActivityResult().
    • Deprecates IntentIntegrator. It is still available, but registerForActivityResult() is recommended instead.
    • Use minimal AndroidX libraries.
    • Use zxing:core 3.4.1 by default.

    Full Changelog: https://github.com/journeyapps/zxing-android-embedded/compare/v4.2.0...v4.3.0

    Source code(tar.gz)
    Source code(zip)
    sample.apk(5.55 MB)
  • v4.2.0(Oct 25, 2021)

    Changes

    • Fix MediaPlayer warnings (#587).
    • Prevent CameraConfigurationUtils clash (#609).
    • Add licenses to POM (#556).

    Issues

    Crashes on SDK versions older than 21 (#645).

    Full Changelog: https://github.com/journeyapps/zxing-android-embedded/compare/v4.1.0...v4.2.0

    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Oct 25, 2021)

    • Ability to hide the laser in ViewfinderView (#503).
    • Make possibleResultPoints method in BarcodeCallback optional (#504).
    • Ability to customize or disable the permission error dialog (#505).
    Source code(tar.gz)
    Source code(zip)
  • v4.0.2(Sep 27, 2019)

    • Use androidx.
    • Use zxing:core 3.4.0 by default.
    • Minimum SDK version 24, downgradable to 14.
    • Fix ArithmeticException.
    • Fix ResultPoint locations when camera is mirrored.
    Source code(tar.gz)
    Source code(zip)
  • v3.6.0(Sep 27, 2019)

    • Use zxing:core 3.3.2 by default (#360).
    • Minimum SDK version 19, or 14 by using zxing:core 3.3.0.
    • Fix preview race condition (#324).
    • Request code can now specified per Intent, instead of globally (#287).
    • More helpers to specify barcode formats.
    • Allow scanning both inverted and non-inverted barcodes at the same time (alternating) (#326).
    • More examples.
    Source code(tar.gz)
    Source code(zip)
  • v3.5.0(Mar 20, 2017)

    • Allow changing the REQUEST_CODE value (#234).
    • Add support for inverted scans (#235).
    • Use zxing:core 3.3.0 by default (#265).

    Fixes:

    • Fix memory leak when using scan timeout (#283).
    • Better handling of various camera errors (#241, #268, #270)
    Source code(tar.gz)
    Source code(zip)
    sample-3.5.0.apk(1.62 MB)
  • v3.4.0(Oct 16, 2016)

    Changes:

    • Beep on scan is now controlled only by the media volume, and still plays even if the device is in "silent mode", as long as the media volume is not muted.
    • The 150ms delay after scanning is removed.

    Fixes:

    • An issue where the beep sometimes played twice is fixed (#221).
    • Fix rare crash (#209)
    • Fix orientation lock issue (#181)
    • Fix race condition with TextureView (#204)
    Source code(tar.gz)
    Source code(zip)
    sample-3.4.0.apk(1.41 MB)
  • v3.3.0(Jun 5, 2016)

  • v3.2.0(Feb 6, 2016)

    • Improved preview scaling strategies, configurable between centerCrop, fitCenter, fitXY (#135)
    • Fix issues with Android 6 permission support (#123)
    • Fix camera initialization issues, specifically related to orientation changes (#133)
    • More control over focus mode (#112)
    • Keep drawing viewfinder frame after scanning / pausing (#134)
    • More control over torch state, and save the state on orientation change (#136)
    Source code(tar.gz)
    Source code(zip)
Owner
JourneyApps
JourneyApps is a unique high-productivity platform to build and run mission-critical industrial-grade apps.
JourneyApps
Barcode Scanner Libraries for Android

Project Archived July 1 2020 This project is no longer maintained. When I first started this project in late 2013 there were very few libraries to hel

Dushyanth 5.4k Jan 3, 2023
Android app and Python library for turning mobile phone into a WebSocket-based, remotely controllable Barcode/QR code reader

Remote Barcode Reader suite Android app and Python library for turning mobile phone into a remotely controllable Barcode/QR code reader. It exposes a

Krystian Dużyński 3 Dec 6, 2022
Android library for creating QR-codes with logo, custom pixel/eyes shapes, background image. Powered by ZXing.

custom-qr-generator Android library for creating QR-codes with logo, custom pixel/eyes shapes, background image. Powerd by ZXing. Installation To get

Alexander Zhirkevich 34 Dec 17, 2022
a simple QRCode generation api for java built on top ZXING

QRGen: a simple QRCode generation api for java built on top ZXING Please consider sponsoring the work on QRGen Dependencies: ZXING: http://code.google

Ken Gullaksen 1.4k Dec 31, 2022
Generate Qr Code using ZXING with a logo if needed

QrGeneratorWithLogo Generate Qr Code using ZXING with a logo if needed Download the Helper file and use it 1- add zxing lib into your project implem

null 0 Mar 14, 2022
A library to help implement barcode scanning

A library to help implement barcode scanning

Brightec 99 Nov 30, 2022
QrX: Camera with ML Kit QR/Barcode detection

QrX: Camera with ML Kit QR/Barcode detection This library allows you to easily add CameraX Preview with attached ML Kit to detect and display Qr codes

Mateusz Lutecki 1 Apr 7, 2022
Qart is Android App that's based on CuteR project. App generate QR code that merge a picture. So the QR code looks more beautiful.

Qart is Android App that's based on CuteR project. App generate QR code that merge a picture. So the QR code looks more beautiful.

scola 1k Dec 16, 2022
QRAlarm - an Android alarm clock application lets the user turn off alarms by scanning the QR Code.

QRAlarm is an Android alarm clock application that does not only wake You up, but also makes You get up to disable the alarm by scanning the QR Code.

null 39 Jan 8, 2023
ZXing ("Zebra Crossing") barcode scanning library for Java, Android

Project in Maintenance Mode Only The project is in maintenance mode, meaning, changes are driven by contributed patches. Only bug fixes and minor enha

ZXing Project 30.5k Dec 27, 2022
ZATAC Scanner is Android Kotlin-based QR code scanner and parser which de-crypt TLV qr codes and parse them into their values.

ZATAC Scanner is Android Kotlin-based QR code scanner and parser which de-crypt TLV qr codes and parse them into their values.

Enozom 12 Apr 23, 2022
Barcode Scanner Libraries for Android

Project Archived July 1 2020 This project is no longer maintained. When I first started this project in late 2013 there were very few libraries to hel

Dushyanth 5.4k Jan 3, 2023
Barcode Scanner Libraries for Android

Project Archived July 1 2020 This project is no longer maintained. When I first started this project in late 2013 there were very few libraries to hel

Dushyanth 5.4k Jan 9, 2023
Yet another barcode scanner for Android

Binary Eye Yet another barcode scanner for Android. As if there weren't enough. This one is free, without any ads and open source. Works in portrait a

Markus Fisch 802 Dec 31, 2022
Android barcode scanner with ML-Kit vision api

MLBarcodeScanner A demo project to show how to implement barcode scanner using Google ML-Kit Vision api Supported barcode types 2D formats: QR Code, A

Mahdi Javaheri 5 Dec 26, 2022
This app contains feature barcode and QR scanner, and video recording in-app.

BarcodeQRScannerAndVideoRecord This app contains feature barcode and QR scanner, and video recording in-app. Scanner using ML Kit and CameraX. Video R

Abdullah Fahmi 1 Dec 23, 2021
D4rK QR & Bar Code Scanner Plus is a FOSS scanner app for every Android. 📷

?? QR & Bar Code Scanner Plus ?? ╔╦╦╦═╦╗╔═╦═╦══╦═╗ ║║║║╩╣╚╣═╣║║║║║╩╣ ╚══╩═╩═╩═╩═╩╩╩╩═╝ D4rK QR & Bar Code Scanner Plus is a FOSS scanner app for every

D4rK 8 Dec 19, 2022
Android app and Python library for turning mobile phone into a WebSocket-based, remotely controllable Barcode/QR code reader

Remote Barcode Reader suite Android app and Python library for turning mobile phone into a remotely controllable Barcode/QR code reader. It exposes a

Krystian Dużyński 3 Dec 6, 2022
Android library for creating QR-codes with logo, custom pixel/eyes shapes, background image. Powered by ZXing.

custom-qr-generator Android library for creating QR-codes with logo, custom pixel/eyes shapes, background image. Powerd by ZXing. Installation To get

Alexander Zhirkevich 34 Dec 17, 2022
An implementation of a gif decoder written 100% in Kotlin, plus an associated Drawable for Android

An implementation of a gif decoder written 100% in Kotlin, plus an associated Drawable for Android

Benoît Vermont 41 Nov 19, 2022