ANDROID APP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
มัลติเพิลแอคทิวิตี้ (Multiple Activities)<br />
กรรมวิธี: การเรียกใช้งานแอคทิวิตี้เพื่อแสดงผลลัพธ์โดยการแปลงเสียง<br />
เป็นข้อความ<br />
ในส่วนนี้จะแสดงให้เห็นถึงการเรียกใช้แอคทิวิตี้เพื่อแสดงผลลัพธ์ รวมทั้งสาธิตการใช้งานระบบ<br />
การแปลงเสียงเป็นข้อความ ซึ่งพัฒนาโดย Google (RecognizerIntent) และแสดงผลลัพธ์ออก<br />
ทางจอภาพ โดยเราจะสั่งให้ RecognizerIntent เริ่มทำงานเมื่อมีการกดปุ่ม อินเท็นต์นี้จะทำการ<br />
ตรวจจับเสียงจากไมโครโฟนและแปลงข้อมูลเป็นข้อความ เมื่ออินเท็นต์ทำงานเสร็จแล้วก็จะส่งผ่าน<br />
ข้อความนี้กลับไปยังแอคทิวิตี้ที่เรียกใช้งานอินเท็นต์นี้<br />
ขั้นตอนก่อนที่จะส่งข้อมูลกลับนั้น ฟังก์ชั่น onActivityResult() จะถูกเรียกใช้พร้อมกับ<br />
ข้อมูลที่จะส่งกลับ และเรียกใช้ฟังก์ชั่น onResume() เพื่อให้แอคทิวิตี้มีสถานะเป็นปกติ ในบางครั้งการ<br />
เรียกใช้แอคทิวิตี้อาจจะพบปัญหาและไม่มีการส่งค่ากลับ ดังนั้นเราจะต้องตรวจสอบค่าของ resultcode<br />
เพื่อให้แน่ใจว่ามีค่าเป็น RESULT_OK ก่อนที่จะทำการส่งข้อมูลกลับ<br />
ขั้นตอนการเรียกใช้แอคทิวิตี้มีดังนี้<br />
1. เรียกใช้คำสั่ง startActivityForResult() กำหนดแอคทิวิตี้ที่ต้องการใช้งาน<br />
2. ทำการโอเวอร์ไรด์ฟังก์ชั่น onActivityResult() เพื่อตรวจสอบสถานะของผลลัพธ์<br />
ตรวจสอบ requestCode และส่งผ่านข้อมูลกลับ<br />
ขั้นตอนการใช้งาน RecognizerIntent มีดังนี้<br />
1. ประกาศการใช้งานอินเท็นต์ด้วยแอ็กชั่น ACTION_RECOGNIZE_SPEECH<br />
2. กำหนดค่าต่างๆ เพิ่มเติมให้แก่อินเท็นต์ เช่น EXTRA_LANGUAGE_MODEL ซึ่งกำหนด<br />
เป็นค่า LANGUAGE_MODEL_FREE_FORM หรือ LANGUAGE_MODEL_WEB_<br />
SEARCH<br />
3. ทำการส่งข้อมูลกลับ ซึ่งประกอบด้วยลิสต์ของข้อความที่แปลงมาจากเสียง โดยจะใช้<br />
คำสั่ง data.getStringArrayListExtra เพื่อดึงข้อมูลเหล่านี้<br />
ชุดคำสั่งที่ 2.14 ในส่วนของแอคทิวิตี้หลัก คำสั่ง TextView จะถูกใช้เพื่อแสดงข้อความบน<br />
จอภาพ<br />
นอกเหนือจากนี้ไฟล์ที่จำเป็นจะต้องใช้งานคือไฟล์ main.xml และ string.xml ซึ่งใช้เพื่อสร้าง<br />
Button และ TextView ส่วน AndroidManifest จะถูกประกาศในแอคทิวิตี้หลักเท่านั้น และอินเท็นต์<br />
ชื่อ RecognizerIntent เป็นแอคทิวิตี้ที่มีอยู่ในระบบปฏิบัติการแอนดรอยด์อยู่แล้ว เลยไม่จำเป็นต้อง<br />
ประกาศก่อนการใช้งาน<br />
41