12 สิงหาคม 2561
การเขียนแอพสแกน QR Code ด้วย Android Studio
บทความนี้จะนำเสนอวิธีการเขียนแอพบน Android Studio เพื่อใช้ในการสแกน QR Code
เริ่มจากเปิดไฟล์ build.gradle(Module: app) แล้ววางโค้ดใน dependencies ดังนี้
implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
ออกแบบ GUI ที่ activity_main.xml โดยในตัวอย่างนี้จะตั้งชื่อปุ่มว่า scan_button
<Button
android:id="@+id/scan_button"
เขียนโค้ดใน MainActivity.java ดังนี้
package com.example.max.qr_test;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
public class MainActivity extends AppCompatActivity {
private Button scan_button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scan_button = (Button) findViewById(R.id.scan_button);
final Activity activity = this;
scan_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setPrompt("Scan");
integrator.setCameraId(0);
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(false);
integrator.initiateScan();
}
});
}
@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, "You cancell scanning", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this,result.getContents(),Toast.LENGTH_LONG).show();
}
}
else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
กำหนดค่า Permission ให้กับกล้องใน Manifest ดังนี้
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
จากนั้นทดสอบการทำงาน
Please login for comment