บทความแอนดรอยด์ Java
Read QR code by Zxing Library Step3 Add Zxing Library
Written by มาสเตอร์ อึ่งมาถึงตอนสุดท้ายของ Workshop การทำแอพ อ่าน QR code ครับ อันนี่เป็นบทความต่อจากตอน สอง ครับ ใครไม่ทั้นไปดูที่นี่ครับ http://androidthai.in.th/android-article/149-read-qr-code-by-zxing-library-step2-replace-fragment-in-activity
สิ่งแรกเราจะไปโหลด Library Zxing มาทำงานก่อนไปที่ https://github.com/dm77/barcodescanner ครับ
มองหา นี่ครับ compile 'me.dm7.barcodescanner:zxing:1.9.8' ให้ copy ไว้ครับ
การติดตั้ง Library แค่เราไปที่ File > Project Structor > app
ไปที่ Dependencies มองหา + (Windows จะอยู่ทางขวามือ, mac อยู่ด้านล่าง)
เลือก 1 Library dependency
ให้ paste ไลบลารี่ ที่เรา Copy มาไว้ที่นี่และ คลิก OK
จะเห็น Library ที่เรา paste มารอ Implementation ที่นี่
เราสามารถ เช็คว่า เราติดตั้ง Library สำหร็จหรือเปล่าโดย การไปที่ build.gradle ส่วนของ Module
ลงมา ล่างสุดหา เทค dependencies จะเห็น implementation ของ ไลบรารี่ ที่เรา Add ไปอยู่ที่นี่ครับ
กลับมาที่ QrFragment ที่เราทำค้างไว้เมื่อตอน สอง
ประกาศตัวแปร ZxingScannerView (ถ้าเราไม่ได้ติดตั้ง ไลบรารี่ มาก่อนจะไม่เห็น ZxingScannerView ที่นี่ครับ)
ได้มาละ zXingScannerView
มาที่เมธอด onCreateView
กำหนด zXingScannerView ให้ เป็น View ของเมธอด onCreateView
กลับไปที่ ด้านบน ตรงคลาส QrFragment ให้ implement ZXingScannerView.ResultHander
ให้ ALT + Enter เลือก Implement
ตัว Android Studio จะแนะนำให้สร้าง เมธอด handleResult ครับ
เราจะ ได้เมธอด handleResult ละ สังเกตุ เมื่อ handleResult จะได้ ค่า result ค่านี่แหละ คือ QR code ที่อ่านได้
มาสเตอร์ ประกาศตัวแปร resultString จะรับค่าจาก result ที่ getText และ ออฟเจ็ค Intent จะ putExtra กลับไป ที่ เมธอด onActivityResult ที่อยู่ที่ MainFragment ครับ
กลับมาที่ คลาส MainFragment
Override เมธอด onActivityResult ขึ้นมา
ที่เมธอด onActivityResult มาสเตอร์ ประกาศตัวแปร resultString ให้รับค่าจาก Intent และ นำไปแสดงที่ TextView
ให้เปิด AndroidManifest และ permission Camera ด้วยนะครับ
ลองทดสอบโค้ด ค้องทดสอบบนเครื่องจริงนะครับ ไม่สามารถทำบน จำลองได้ครับ
คลิกที่ปุ่ม Read QR Code จะเปิด Camera แบบนี่คร้บ
เอากล้องไปเล็งที่ QR code จะเอาค่าที่อ่านได้ จาก QR code มาแสดงที่ TextView แบบนี้
ลอง กดปุ่ม Read QR code ใหม่
ก็จะอ่านได้อีก ยินดีในความสำเร็จ สำหรับใครที่ไม่ทัน สามารถ เรียนโค้ดแอนดรอยด์ กับมาสเตอร์ ตัวต่อตัว หรือ พาเพื่อนมาเรียนได้ ที่ http://androidthai.in.th/basic-android-by-master-ung-private-course ครับ แล้วพบกันครับ อ้อ สำหรับ ผู้ที่ โปรเจ็ค http://androidthai.in.th/workshop-with-master-ung/74-private-course-project-basic-android หรือ จะโทรมาปรึกษาได้ครับ