16 มิถุนายน 2557

[Android Dev Tips] ช่วยด้วย! Emulator พิมพ์ภาษาไทยไม่ได้!!


        สำหรับบทความในวันนี้เจ้าของบล็อกเชื่อว่าผู้ที่หลงเข้ามาอ่านหลายๆคนน่าจะประสบปัญหานี้กัน

        นั่นก็คือพิมพ์ภาษาไทยใน 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 พิมพ์ภาษาไทยไม่ได้!!




เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium