Print
Details: Category: บทความแอนดรอยด์ | Published: 22 August 2018 | Hits: 8959

มาถึงตอนสุดท้ายของ 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 หรือ จะโทรมาปรึกษาได้ครับ