สำหรับบทความในวันนี้เจ้าของบล็อกเชื่อว่าผู้ที่หลงเข้ามาอ่านหลายๆคนน่าจะประสบปัญหานี้กัน
นั่นก็คือพิมพ์ภาษาไทยใน Emulator ไม่ได้
ปัญหานี้ไม่ใช่ปัญหาว่าไม่แสดงภาษาไทยนะ ภาษาไทยสามารถแสดงได้ปกติ แต่ว่าเวลาทำแอปพลิเคชันที่มี Edit Text แล้วจะทดสอบพิมพ์ข้อความลงไปกลับพบว่าพิมพ์ได้แต่ภาษาอังกฤษ ไม่สามารถพิมพ์ภาษาไทยได้
โดยบทความนี้เจ้าของบล็อกจะใช้กับบน Genymotion นะ เพราะสามารถแก้ปัญหาได้ง่ายกว่า ถ้าผู้ที่หลงเข้ามาอ่านคนใดยังใช้ AVD อยู่ก็แนะนำให้เปลี่ยนไปใช้ Genymotion เถอะ จะได้ไม่ตกเทรนด์ [Android Dev Tips] Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนา [การติดตั้งใช้งาน]
ก่อนจะรู้ว่าวิธีแก้ปัญหานั้นทำยังไง เจ้าของบล็อกก็อยากจะให้รู้กันก่อนว่าเพราะทำไมมันถึงพิมพ์ภาษาไทยไม่ได้ เพื่อเสริมความรู้ความเข้าใจในระบบแอนดรอยด์ให้มากยิ่งขึ้นซะหน่อย ไม่ใช่ว่าเป็นนักพัฒนาแอนดรอยด์แต่ใช้แอนดรอยด์ไม่เป็นซะงั้น
เริ่มจากคำถามง่ายๆก่อนว่า
เคยต่อคีย์บอร์ดเข้ากับอุปกรณ์แอนดรอยด์กันหรือป่าว?
เพราะว่า Emulator ก็เหมือนอุปกรณ์แอนดรอยด์ตัวหนึ่งนั่นแหละ ซึ่งผู้ที่หลงเข้ามาอ่านสามารถพิมพ์ข้อความใส่ลงไปใน Emulator ผ่านคีย์บอร์ดได้ นั่นก็มาจากการที่อุปกรณ์แอนดรอยด์มองว่ามันเป็น Physical Keyboard นั่นเอง
ถ้าผู้ที่หลงเข้ามาอ่านเคยใช้คีย์บอร์ดต่อแยกมาก่อนก็จะเข้าใจกันดีกว่า "มันพิมพ์ภาษาไทยไม่ได้!!" เพราะว่า Physical Keyboard ของระบบแอนดรอยด์มันดันไม่มีภาษาไทยให้
สรุปได้ว่าเป็นเพราะระบบมันมองเป็นการพิมพ์ผ่าน Physical Keyboard แต่ทว่าตัวระบบแอนดรอยด์เองนั้นก็ไม่ได้รองรับการพิมพ์ภาษาไทยผ่าน Physical Keyboard อยู่แล้ว
แก้ปัญหายังไงดีล่ะ?
วิธีแก้ปัญหานั้นมีอยู่สองวิธีด้วยกัน โดยวิธีแรกขอเป็นวิธีที่ไม่ต้องทำอะไรเยอะก่อนละกันเนอะ และที่สำคัญ แนะนำให้ใช้ Emulator ที่เป็นเวอร์ชัน 4.1 ขึ้นไป (เพราะคีย์บอร์ดในระบบจะมีภาษาไทยตั้งแต่ 4.1 ขึ้นไป)
วิธีแรก - เปลี่ยนไปใช้ Virtual Keyboard
Virtual Keyboard หรือที่เรียกกันว่า On-screen Keyboard นั่นแหละ ซึ่งวิธีนี้จะให้ Emulator เปิดใช้งาน Virtual Keyboard โดยที่ Genymotion รองรับการตั้งค่าดังกล่าวอยู่แล้ว ซึ่งสามารถเปิดใช้งานได้สองวิธีด้วยกัน
เปิด Virtual Keyboard วิธีแรก
• ถ้าเปิด Emulator ของตัวที่พิมพ์ไทยไม่ได้อยู่ ก็ให้ปิดซะก่อน จากนั้นเปิด Genymotion ขึ้นมา แล้วดูที่ Your virtual devices ให้กดเลือกตัวที่ต้องการจะมีปุ่มตั้งค่าแสดงขึ้นมาให้เห็น
• ที่หน้าตั้งค่าจะมี Use virtual keyboard for typing ให้เลือก ก็ติ๊กเลือกซะแล้วกด OK ปิดหน้าต่างไปได้เลย เท่านี้ก็เป็นอันเสร็จ
เปิด Virtual Keyboard วิธีที่สอง
• ถ้าสังเกตดีๆจะเห็นว่า Emulator ของ Genymotion จะมีแอพที่ชื่อว่า Genymotion Configuration อยู่แล้ว ให้กดเปิดขึ้นมาซะ
• จะเห็นว่ามี Keyboard Visual Keyboard ให้เลือก ให้ติ๊กเลือกซะแล้วเลือกเป็น Virtual Keyboard แทน จากนั้นกด Save
• จะมีหน้าต่างถามขึ้นมาว่าจะให้ Restart เครื่องหรือไม่ ก็ให้เลือกที่ Yes เพื่อ Restart ซะ เพราะการเปลี่ยนรูปแบบคีย์บอร์ดใน Emulator จำเป็นต้อง Restart ด้วย จากนั้นก็ให้รอซักพักเดี๋ยวก็จะกลับมาเปิดเครื่องใหม่ให้เองโดยอัตโนมัติ แต่ถ้ามันค้างที่หน้า Power Off นานเกินไปก็แนะนำให้ไปกำหนดด้วยวิธีแรกละกัน ฮาๆ
สำหรับการเปิดใช้งาน Virtual Keyboard ทั้งสองวิธีนี้มีความต่างกันแค่ว่าต้องปิด Emulator หรือป่าวแค่นั้นแหละ ถ้าใช้วิธีแรกจะต้องปิด Emulator ก่อน ซึ่งจะเหมาะในเวลาที่ยังไม่ได้เปิด Emulator ขึ้นมาซะมากกว่า ส่วนวิธีที่สองคือเหมาะสำหรับกรณีที่เปิดทิ้งไว้อยู่แล้วขี้เกียจเปิดปิดใหม่นั่นเอง
เมื่อเปิดใช้งาน Virtual Keyboard แล้ว ก็จะเห็นว่ามีคีย์บอร์ดแสดงขึ้นมาเวลาจะพิมพ์ข้อความ
แล้วภาษาไทยอยู่ไหนล่ะ?!
นั่นสิเนอะ ยังไม่ได้เพิ่มให้คีย์บอร์ดสามารถพิมพ์ภาษาไทยได้เลย เพราะงั้นต้องไปที่ Settings > Language & input แล้วกดปุ่มเครื่องหมายตั้งค่าที่อยู่ต่อท้ายของ Android keyboard (AOSP) เพราะว่าตอนนี้ผู้ที่หลงเข้ามาอ่านกำลังใช้คีย์บอร์ดตัวนี้อยู่
ที่หน้าตั้งค่าให้เลือกที่ Input languages ซึ่งสังเกตดีๆจะเห็นว่ามีแค่ English (US) เท่านั้นอยู่
เมื่อเข้ามาที่หน้าตั้งค่าภาษาของคีย์บอร์ดให้ติ๊กที่ช่อง Use system language ออกซะ แล้วจะเห็นว่า English (US) ติ๊กเลือกอยู่ ไม่ต้องสนใจ ให้เลื่อนลงไปข้างล่างสุดจะเห็นตัวเลือกภาษาไทย ให้ติ๊กเลือกให้เรียบร้อย เท่านี้ก็เป็นอันเสร็จ
เมื่อลองทดสอบพิมพ์ข้อความดูก็จะเห็นว่าเปลี่ยนเป็นภาษาไทยได้แล้ว (ผู้ที่หลงเข้ามาอ่านคนไหนยังไม่รู้ว่าเปลี่ยนยังไง ให้กดปุ่มเครื่องหมายรูปโลกที่อยู่บนคีย์บอร์ด)
เพิ่มเติม - สำหรับรูปแบบคีย์บอร์ดที่มากับระบบจะมีความต่างกันเล็กน้อยคือ ในเวอร์ชัน 4.1 เป็นคีย์บอร์ด 3 แถว ซึ่งพิมพ์ยากหน่อยเพราะบางตัวอักษรต้องกดค้าง เช่น จะพิมพ์ พ.พาน แต่ว่าบนคีย์บอร์ดไม่แสดงให้เห็น ต้องกดที่ ฟ.ฟัน ค้างไว้แล้วจะขึ้น พ.พาน ให้เลือก แต่ทว่าในเวอร์ชัน 4.2 ขึ้นไปได้เปลี่ยนเป็นคีย์บอร์ด 4 แถวใช้รูปแบบ ฟหกด จึงทำให้พิมพ์ได้ง่ายกว่า
เท่านี้ก็พิมพ์ภาษาไทยได้แล้ว โดยกดปุ่มคีย์บอร์ดบนหน้าจอแทน แต่ทว่ายังสามารถพิมพ์ภาษาอังกฤษผ่านคีย์บอร์ดคอมได้ตามปกติอยู่นะเออ
ในกรณีที่ไม่ชินกับคียบอร์ดที่มากับระบบและลง Google Apps ไว้และใช้งาน Google Play ได้ ก็สามารถไปดาวน์โหลดคีย์บอร์ดเสริมมาใช้ได้เลยนะ อย่างเช่นเจ้าของบล็อกใช้ Keyboard ManMan ที่สุดแสนจะโด่งดังมาใช้แทน
วิธีที่สอง - ลงคีย์บอร์ดเสริมที่รองรับ Virtual Keyboard ภาษาไทย
สำหรับผู้ที่หลงเข้ามาอ่านที่เคยใช้คีย์บอร์ดต่อแยกก็จะรู้กันอยู่แล้วว่าจะพิมพ์ภาษาไทยได้ก็ต้องใช้แอปพลิเคชันคีย์บอร์ดที่รองรับ Virtual Keyboard ซึ่งจะมีอยู่ไม่กี่ตัวด้วยกัน โดยที่นิยมกันก็คือ Hardware Thai Keyboard ของ Gadgetdoor
ซึ่งการจะติดตั้งแอปพลิเคชันจาก Google Play ได้ก็ต้องติดตั้ง Google Apps ก่อนนั่นเอง โดยสามารถดูวิธีติดตั้งได้ที่ [Android Dev Tips] ติดตั้ง Google Apps ให้กับ Genymotion
ก็ไปดาวน์โหลดมาติดตั้งให้เรียบร้อยซะ (เจ้าของบล็อกไม่ขอแจก APK เพราะว่าอยากให้สนับสนุนด้วยการกดดาวน์โหลดนะ)
ติดตั้งเสร็จแล้วก็เข้าไปตั้งค่าใช้งานใน Settings > Language & input ซะ โดยหน้าตั้งค่าของแอปพลิเคชันตัวนี้จะมีให้ตั้งการปุ่มเปลี่ยนภาษาด้วย (แต่ดันตั้งได้แค่ปุ่ม ` ซะงั้น) เจ้าของบล็อกกำหนดเป็นใช้ปุ่ม Alt + `
ทีนี้ก็ลองทดสอบพิมพ์ภาษาไทยดูซะ โดยมีเงื่อนไขที่สำคัญว่าภาษาที่ใช้บนเครื่องคอมพิวเตอร์ต้องเป็นภาษาอังกฤษเท่านั้น นั่นคือสาเหตุที่เจ้าของบล็อกให้กำหนดเป็น Alt + ` เพราะไม่งั้นมันจะไปชนกับปุ่มเปลี่ยนภาษาของคอมพิวเตอร์ของบางคน (เจ้าของบล็อกใช้ Alt + Shift เลยไม่มีปัญหา)
ดังนั้นเวลาจะพิมพ์ให้กดเปลี่ยนภาษาในเครื่องคอมพิวเตอร์เป็นภาษาอังกฤษก่อน จากนั้นลองพิมพ์ภาษาอังกฤษใน Emulator ดูว่าขึ้นปกติหรือไม่ จากนั้นกดปุ่มเปลี่ยนภาษาตามที่กำหนดไว้ (เจ้าของบล็อกกำหนดเป็น Alt + `) ก็จะเห็นว่าภาษาไทยขึ้นแล้ว
ทำไมต้องยุ่งยากเปลี่ยนภาษาบนเครื่องคอมพิวเตอร์ให้เป็นภาษาอังกฤษก่อนล่ะ?
นั่นก็เพราะว่าแอปพลิเคชันเหล่านี้ไม่ได้ทำให้เครื่องรองรับการพิมพ์ภาษาไทยโดยตรง แต่ว่าใช้วิธีรับค่าตัวอักษรภาษาอังกฤษมาแล้วเทียบเอาว่าเป็นตัวอักษรภาษาไทยตัวไหน แล้วส่งค่าที่เป็นภาษาไทยไปแทน เพื่อให้ดูเหมือนว่าทำให้พิมพ์ภาษาไทยได้
โดยรวมเจ้าของบล็อกว่าวิธีแรกที่ใช้ Virtual Keyboard น่าจะง่ายสำหรับผู้ที่หลงเข้ามาอ่านทั่วๆไปมากกว่า เพราะในวิธีที่สองการใช้งานจริงจะดูยุ่งยากเล็กน้อย
บทความที่เกี่ยวข้อง
• Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนาแอนดรอยด์• ติดตั้ง Google Apps ให้กับ Genymotion
• ติดตั้ง Plugin ของ Genymotion ให้กับ Android Studio
• ปัญหา Google Text-to-speech Engine บน Genymotion หยุดทำงาน
• การนำไฟล์ไปใส่ใน Genymotion [Copy file to Genymotion]
• ปัญหา INSTALL_FAILED_CPU_ABI_INCOMPATIBLE บน Genymotion
• การติดตั้ง Genymotion บน Mac OS X
• ช่วยด้วย! Emulator พิมพ์ภาษาไทยไม่ได้!!