Cara Membuat Aplikasi QR Code Scanner di Android Studio

Cara Membuat Aplikasi QR Code Scanner di Android Studio

Cara Membuat Aplikasi QR Code Scanner di Android Studio
Cara Membuat Aplikasi QR Code Scanner di Android Studio

Hallo sobat ruangcoder, artikel tentang Cara Membuat Aplikasi QR Code Scanner di Android Studio ingetloh ya scan qr code bukan generate qr code android studio , nah dalam membuat aplikasi qr code android studio kita akan menggunakan sebuah Library Code Scanner dengan basenya ZXing. Tentunya, di artikel yang admin tulis tentang cara membuat aplikasi scan qr code, kita akan menggunakan costum layout. Jadi untuk tampilan scannya sesuai dengan apa yang diinginkan oleh sobat. Biasanya kan sobat suka menggunakan default layout dari library code scanner. 

Catatan :

Jika sobat ingin baca - baca dokumentasi dari library nya sobat bisa lihat disini :
Code Scanner : Library untuk membaca QR Code. ( https://github.com/yuriy-budiyev/code-scanner )

Dexter : Library untuk memenuhi kebutuhan permission. Karena pada tutorial cara membuat aplikasi qr code ini kita menggunakan camera device sebagai scannernya. ( https://github.com/Karumi/Dexter )

Membuat Aplikasi Scan QR Code di Android Studio :


Langkah pertama silahkan sobat buka android studio sobat,saat terbuka android studio sobat klik -> Start a new Android Studio project -> pilih Empty Activity -> kasih nama project tersebut dengan nama "QRCode" kemudian pilh API 19: Android 4.4 (KitKat) langsung Finish saja. Lalu sobat tunggu sampai Gradle dll nya selesai di Synchrone , tunggu saja, admin anggep sobat sudah selesai, jadi kita lanjut.

Silahkan sobat download assets dibawah ini, dimana assets ini akan dipergunakan untuk merubah layout / design dari aplikasi kita.


Setelah download , kita balik ke Android studio kita, silahkan import library nya terlebih dahulu, dengan cara sobat ke Gradle Scripts -> build.gradle (Module: app), dan letakkan code dibawah ini kemudian sobat Sync Now.



    implementation 'com.budiyev.android:code-scanner:2.1.0'
    implementation 'com.karumi:dexter:5.0.0'


Kemudian sobat Buka AndroidManifest.xml lalu tambahkan permission camera. Untuk kodenya seperti berikut :



 <uses-permission android:name="android.permission.CAMERA">

Selanjutnya kita akan membuat design nya terlebih dahulu, dengan memodifikasi codingan default yang ada di MainActivity.xml dengan codingan yang ada dibawah ini, tapi sebelum itu masukkan assets yang sebelum nya sobat download kedalam drawable. tinggal drag and drop aja, baru sobat ketikkan codingan yang dibawah ini.



<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".MainActivity">

    <ImageView
        android:id="@+id/ivBgContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg_content"
        tools:ignore="ContentDescription" />

    <com.budiyev.android.codescanner.CodeScannerView
        android:id="@+id/scannerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:autoFocusButtonColor="@android:color/transparent"
        app:autoFocusButtonVisible="false"
        app:flashButtonColor="@android:color/transparent"
        app:flashButtonVisible="false"
        app:frameAspectRatioHeight="1"
        app:frameAspectRatioWidth="1"
        app:frameColor="@android:color/transparent"
        app:frameCornersRadius="0dp"
        app:frameCornersSize="0dp"
        app:frameSize="1"
        app:frameThickness="0dp"
        app:maskColor="@android:color/transparent" />
</RelativeLayout>

Nah langkah yang terakhir adalah kita akan membuat fungsinya, tentu dengan cara memodifikasi file MainActivity.java dengan codingan yang ada dibawah ini.



package com.example.qrcode;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.Manifest;
import android.content.DialogInterface;
import android.os.Bundle;
import android.widget.ImageView;

import com.budiyev.android.codescanner.CodeScanner;
import com.budiyev.android.codescanner.CodeScannerView;
import com.budiyev.android.codescanner.DecodeCallback;
import com.google.zxing.Result;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;

public class MainActivity extends AppCompatActivity {

    //  Inisialisasi dan membuat fungsi aplikasi

    private ImageView ivBgContent;
    private CodeScanner mCodeScanner;
    private CodeScannerView scannerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Inisialisasi fungsi dan komponen pada onCreate
        ivBgContent = findViewById(R.id.ivBgContent);
        scannerView = findViewById(R.id.scannerView);

        ivBgContent.bringToFront();

        mCodeScanner = new CodeScanner(this, scannerView);
        mCodeScanner.setDecodeCallback(new DecodeCallback() {
            @Override
            public void onDecoded(@NonNull final Result result) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        String message = "result :\n" + result.getText();
                        showAlertDialog(message);
                    }
                });
            }
        });

        checkCameraPermission();
    }

    // Override method onResume dan onPause
    @Override
    protected void onResume() {
        super.onResume();
        checkCameraPermission();
    }

    @Override
    protected void onPause() {
        mCodeScanner.releaseResources();
        super.onPause();
    }

    // Fungsi cek permission camera

    private void checkCameraPermission(){
        Dexter.withActivity(this)
                .withPermission(Manifest.permission.CAMERA)
                .withListener(new PermissionListener() {
                    @Override
                    public void onPermissionGranted(PermissionGrantedResponse response) {
                        mCodeScanner.startPreview();
                    }

                    @Override
                    public void onPermissionDenied(PermissionDeniedResponse response) {

                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(PermissionRequest permission,
                                                                   PermissionToken token) {
                        token.continuePermissionRequest();
                    }
                })
                .check();
    }

    // Fungsi Alert Dialog

    private void showAlertDialog(String message){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(message);
        builder.setCancelable(true);

        builder.setPositiveButton(
                "SCAN LAGI",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.cancel();
                        mCodeScanner.startPreview();
                    }
                });

        builder.setNegativeButton(
                "CANCEL",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.cancel();
                    }
                });

        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }
}

Nah untuk setiap codingannya sudah admin berikan tag komentar ya , biar sobat paham untuk line codingan yang baru tersebut berfungsi untuk apa, kita sudah selesai, tinggal jalanin aja aplikasinya, maka hasilnya akan seperti gambar dibawah ini.


Tinggal scan, ini karena ane make emulator gitu :v, sobat running di HP aja makanya

Mungkin tutorialnya sampai situ aja sobat, semoga bermanfaat artikel kali ini, dan jangan lupa dishare artikel ini apabila bermanfaat, ditunggu artikel selanjutnya ya sobat. sampai bertemu kembali, dan terimakasih sudah berkunjung di web ini.

Anda mungkin menyukai postingan ini