Bar Code & QR Code Scanner is used to scan BAR & QR code scanning. you can see it in this tutorial.
Steps to use Bar Code & QR Code Scanner in your project.
Steps to use Bar Code & QR Code Scanner in your project.
- Crate a project(Bar Code & QR Code Scanner Demo) in android studio.
- Create a Activity build.gradle and add a dependency to it-
// add dependency to use QR code scanning compile 'com.journeyapps:zxing-android-embedded:3.4.0'
- Now your build.gradle will be like-
apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { applicationId "com.pankaj.barcodedemo" minSdkVersion 15 targetSdkVersion 26 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(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' implementation 'com.android.support:design:26.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' // add dependency to use QR code scanning compile 'com.journeyapps:zxing-android-embedded:3.4.0' }
- Create a activity MainActivity.Java and update it-
package com.pankaj.barcodedemo; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; public class MainActivity extends AppCompatActivity { private IntentIntegrator qrScan; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initialize qrScan = new IntentIntegrator(this); //Specify scanning type like QR/Barcode. Default its scan both type. // qrScan.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES); //Add message to show when scannig qrScan.setPrompt("Scan a Barcode/QR Code"); // Use a specific camera of the device qrScan.setCameraId(0); //enable beep on scan complete qrScan.setBeepEnabled(true); qrScan.setBarcodeImageEnabled(true); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //open scanner qrScan.initiateScan(); } }); } //Getting the scan results @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if (result != null) { //if qrcode has nothing in it if (result.getContents() == null) { Toast.makeText(this, "Result Not Found", Toast.LENGTH_LONG).show(); } else { try { //if qr contains data ((TextView) findViewById(R.id.tvScanData)).setText(result.getContents()); Log.e("scan result", result.getContents()); } catch (Exception e) { } } } else { super.onActivityResult(requestCode, resultCode, data); } } }
- Create a xml activity_main.xml and update it-
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.pankaj.barcodedemo.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_main"> <TextView android:id="@+id/tvScanData" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="web" android:text="Scan result will show here." /> </LinearLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" app:srcCompat="@android:drawable/ic_menu_camera" /> </android.support.design.widget.CoordinatorLayout>
- If you want to open it in only in one mode like landscape or portrait then add below code to manifest
<activity android:name="com.journeyapps.barcodescanner.CaptureActivity" android:screenOrientation="portrait" tools:replace="screenOrientation" />
- All the application development process with Bar Code & QR Code Scanner has completed, Now run the app and look the screen.
- Now click on camera button to open scanner.
- Good bye, Thanks to read this blog.