วันพุธที่ 22 สิงหาคม พ.ศ. 2555

ดูภาพหน้าจอของ Android Tablet บน PC

เมื่อตอนผมหัดเขียนโปรแกรมบนแอนดรอยด์นั้นก็ตัดสินใจซื้อ Tablet ราคาถูกมาเครื่องหนึ่ง เป็นยี่ห้อง Air Pad รุ่น DS820A ที่เลือกยี่ห้อนี้เพราะมันไม่แพงและมีตัวแทนจำหน่ายรับผิดชอบชัดเจน

Tablet เครื่องนี้มีข้อโดดเด่นอยู่อย่างหนึ่งคือมีช่องต่อพ่วงอุปกรณ์ครบ มี USB ใหญ่ USB เล็ก HDMI 3.5 mm Audio Jack SD Card ขาด VGA ก็จะใช้เป็นคอมพิวเตอร์เครื่องหนึ่งได้แล้ว

แต่คงเพราะเป็น Tablet จึงมีปุ่มควบคุมอยู่น้อย มีปุ่ม Volume ปุ่มเรียกเมนู และปุ่ม ESC แค่นี้ ที่เหลือต้องควบคุมผ่านหน้าจอระบบสัมผัสทั้งหมด

อะไรจะเกิดขึ้นถ้ามีอุบัติเหตุทำให้การตั้งค่าความสว่างหน้าจอเป็นศูนย์!??

จอมันก็มืดสิครับ ผมเคยเจอปัญหานี้หนหนึ่งเมื่อสักสองวันก่อนนี่เอง คือไปลงโปรแกรมประหยัดแบตเตอรีแล้วอ่าน UI ไม่เข้าใจไปตั้งค่าให้ประหยัดพลังงานโดยปิดหน้าจอ มืดสนิทไปหมด เราก็นึกว่าเครื่องดับเลย Reset มันซะ ปรากฏว่าเครื่องก็ Restart ตามปกตีมี Splash Screen มาตามลำดับ ๆ พอจบลำดับจอก็มืดเหมือนเดิม เพราะโปรแกรมประหยัดแบตเตอรีมันคุมไว้ ทำไงดีล่ะทีนี้

ก็เลยคิดว่ามันน่าจะมีการควบคุม Android Tablet ผ่าน PC ได้สักทางล่ะน่า หลังจากค้นหาอยู่ไม่นาน (Thank you Google!) ก็พบหน้าเว็บนี้ครับ How to Remote View and Control Your Android Phone ซึ่งอธิบายว่าเราสามารถดูภาพหน้าจอของ Android Tablet ได้โดยใช้เครื่องมือ 3 อย่างคือ
  1. โปรแกรม ADB ซึ่งได้จาก Android SDK อยู่ในไดเรคทอรีย่อย platform-tools
  2. สาย USB
  3. โปรแกรม Androidscreencast ซึ่งเป็นโปรแกรมภาษาจาวา
ขั้นตอนก็ขอเรียบเรียงเป็น 2 ส่วนนะครับ คือส่วนเตรียมการและส่วนใช้งาน ส่วนเตรียมการคือทำหนเดียวแล้วไม่ต้องทำอีก ส่วนใช้งานก็คือทำทุกครั้งที่ใช้งาน

ส่วนเตรียมการ
  • ติดตั้ง JAVA JRE เวอร์ชัน 5 ขึ้นไป ถ้ายังไม่มี (แต่น่าจะมีกันหมดแล้วล่ะมั้ง) เอาไว้รันโปรแกรม Androidscreencast
  • ติดตั้ง Android SDK รุ่นล่าสุด เพื่อจะได้ใช้ ADB ได้
  • ติดตั้งโปรแกรม Androidscreencast โดยการดาวน์โหลดโปรแกรมมาแล้วเก็บไว้ที่ใดสักที่หนึ่งที่ไม่เกะกะ ตรงไหนก็ได้ครับผมเก็บไว้ใน platform-tools นั่นแหละ ไม่ต้อง Setup ไม่ต้อง Install
สำหรับ Debian และ Ubuntu อาจารย์รุจชัยเคยมาบรรยายที่ KKLUG ว่าจะต้องผูกให้ระบบรู้จักกับ Tablet เสียก่อนโดย
สร้างแฟ้มข้อความ (Text File) ชื่อ 52-android.rules ไว้ใน /etc/udev/rules.d/ (แน่นอนว่าต้องผ่าน su นะครับ) โดยในแฟ้มจะมีข้อความว่า
SUBSYSTEM=="usb",SYSFS{idVendor}=="xxxx",ATTRS{idProduct}="yyyy",MODE="666"
ทั้งนี้ xxxx คือ Vendor ID และ yyyy คือ Product ID ที่สามารถทราบได้โดยใช้คำสั่ง
lsusb
ซึ่งจะแสดงรายการอุปกรณ์ที่ต่อพ่วงกับ PC ของเราทาง USB ดังนี้
Bus zzz Device zzz: ID xxxx:yyyy Product Name
เมื่อสร้างแฟ้มข้อความ 52-android.rules แล้วตรวจให้แน่ใจว่าโหมดของแฟ้มคือ 644 หลังจากนั้นเพื่อให้การเปลี่ยนแปลงเกิดผลทันทีก็สั่งให้บริการ ABD เริ่มต้นใหม่โดย
> ./adb kill-server
> ./adb start-server
มาถึงจุดนี้ก็ถือว่าพร้อมใช้งาน ADB ผ่านพอร์ด USB แล้ว

ส่วนใช้งาน
  • ต่อ Android Tablet เข้ากับพอร์ด USB ของ PC ตอนนี้ Tablet อาจจะถามว่าจะเปิดที่เก็บข้อมูลไหม ไม่ต้องตอบครับ Exit ออกมาเลย ถ้าเปิดที่เก็บข้อมูล PC จะมองเห็น Tablet เราเป็น USB Flashdrive ตัวหนึ่งเท่านั้น ถ้าทำต่อมาจากขั้นเตรียมการก็ข้ามขั้นนี้ไปเลย
  • เรียกใช้โปรแกรม ADB ซึ่งใน Debian ของผมจะใช้ Command Line
> ./adb devices
ถ้าเชื่อมต่อได้ก็จะมีข้อความขึ้นมาที่ Prompt ดังนี้
* daemon not running. starting it now on port xxxx *
* daemon started successfully *
List of devices attached
xxxxxxxxxxxxxxxx device
  • เรียกใช้โปรแกรม androidscreencast.jnlp
> jawaws androidscreencast.jnlp
เราจะเห็นหน้าจอของ Tablet ของเราอยู่ในหน้าต่างของโปรแกรม androidscreencast.jnlp นี่แหละครับ  จะบันทึกเป็นวิดีโอก็ได้ ในระบบของผมเขาจะบันทึกให้เป็นแฟ้ม MOV ดังตัวอย่างข้างล่างนี้ครับ

หรือจะบันทึกภาพหน้าจอก็ใช้เครื่องมือบันทึกภาพหน้าจอของ Gnome ก็ได้

เมื่อเราเห็นหน้าจอของ Tablet ของเราทางจอคอมพิวเตอร์ (ตอนนี้จอ Tablet มันดำอยู่) ก็พอจะหาทางควบคุมความสว่างได้ แต่ขอบอกให้ชัด ๆ ก่อนว่าไม่ใช่ว่าควบคุม Tablet จาก PC แต่ให้ PC แสดงหน้าจอของ Tablet เฉย ๆ เรายังต้องใช้ Touch Screen ของ Tablet ในการควบคุมอยู่ดี

ในเว็บแจ้งว่าหากต้องการควบคุม Tablet ผ่าน PC แบบเต็มตัวจะต้อง Root Tablet ตัวนั้นเสียก่อน ผมยังไม่กล้าพอครับ

สุดท้ายรอดตาย ปรับความสว่างหน้าจอให้พ้นความืดมาได้ แต่ดูจะเป็นวิธีแก้แบบยุ่งยากไปหน่อย อันที่จริงผมก็คิดนะว่ามันน่าจะมีวิธีแก้ที่ง่ายกว่านี้ เช่นมีปุ่มพิเศษกดแก้ไขได้เลย หรือไม่ก็อย่าให้มีการตั้งค่าหน้าจอให้ความสว่างเป็นศูนย์ไปตั้งแต่แรกน่าจะดีกว่านี้ ท่านใดทราบวิธีแก้แบบอื่น ๆ ผมยินดีรับคำแนะนำครับ

3 ความคิดเห็น:

Unknown กล่าวว่า...

มีวิธีสำหรับ window 7 มั๊ยค่ะ ตอนนี้กำลังเจอปัญหาเลยค่ะ ขอบคุณล่วงหน้านะคะ

Unknown กล่าวว่า...

มีวิธีสำหรับ Window 7 มั๊ยค่ะ กำลังเจอปัญหาเลยค่ะ ขอขอบคุณล่วงหน้าค่ะ

jark กล่าวว่า...

ขอโทษที่ตอบช้าครับ
สำหรับวินโดว์ผมทำไม่เป็นเหมือนกันครับ
แต่ตอนนี้ปี 2558 แล้ว บางทีปัญหาอาจจะมีทางแก้เรียบร้อยแล้วก็ได้