はじめに
DreamHanksのMOONです。
前回は実生活によく使われるQRコードを直接生成しました。
今回はQRコードをスキャンについて説明していきます。
QRコードのスキャンとは
スマホのカメラの機能でQRコードをスキャンすることです。
設定事項
①QRコードをスキャンするためのライブラリを追加
②スマホの方向によって縦横モード対応するための設定
③ActivityにQRコードをスキャンするための設定
QRコードをスキャンするためのライブラリを追加
「build.gradle」のdependenciesに下記のコードを追加
1 |
implementation 'com.journeyapps:zxing-android-embedded:3.6.0' |
スマホの方向によって縦横モード対応するための設定
AndroidManifest.xmlに下記のコードを追加
1 2 3 4 |
<activity android:name="com.journeyapps.barcodescanner.CaptureActivity" android:screenOrientation="fullSensor" tools:replace="screenOrientation" /> |
ActivityにQRコードをスキャンするための設定
ScanQRActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package com.example.practiceapplication import android.content.Intent import android.os.Bundle import android.widget.Button import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.google.zxing.integration.android.IntentIntegrator class ScanQRActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_scan_qr) val scan_btn = findViewById<Button>(R.id.scan_btn) //スキャンボタン //スキャンボタンのクリックイベントを設定 scan_btn.setOnClickListener { val qrScan = IntentIntegrator(this) qrScan.setOrientationLocked(false) qrScan.setPrompt("QRコードを認識してください。") qrScan.initiateScan() } } override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent? ) { val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data) if (result != null) { if (result.contents == null) { Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show() } else { Toast.makeText(this, "Scanned: " + result.contents, Toast.LENGTH_LONG).show() } } else { super.onActivityResult(requestCode, resultCode, data) } } } |
activity_scan_qr.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context=".ScanQRActivity" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/main_tv" android:text="QRコードをスキャン" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/scan_btn" android:text="スキャン"/> </LinearLayout> |
アプリ起動
・初期の画面
・スキャンボタンをクリックした場合(スキャン画面に遷移)
・下のQRコードをスキャンした場合(URLがToastで表示)
終わりに
今回はQRコードをスキャンについて説明しました。
次回は「CalendarView」というヴューについて説明していきます。
コメント