เผา Slide พัฒนา Android Wear Application

เนื่องจากได้กลับมาเขียน Wear Application อีกรอบ เพราะ Google Play Service ตัวใหม่ และ Android 5.0.1W ก็เลยทำให้ต้องมาดูว่ามีอะไรเปลี่ยนแปลงไปบ้าง เลยได้ถือโอกาสทำตัวอย่างโค้ด จนเลยเถิดไปทำ slide ซะงั้น เอาเวลาเขียน how-to น่าจะดีกว่าอ่ะนะ แต่ก็ทำ slide ไปแล้วบางส่วน ถ้าว่างๆ จะทำเพิ่มละกัน

Continue reading

ลองเล่น Watchface App

ช่วงนี้ Watchface App เริ่มมีมากขึ้นคิดว่ามากกว่า Android Wear App ซะอีก เพราะคนส่วนใหญ่สนใจเรื่องการสร้างอะไรที่เป็นส่วนตัวมากขึ้น ยกตัวอย่างเรื่องเปลี่ยน wallpaper นี่เห็นภาพเลย และหลายคนก็อยากมี watchface ที่ออกแบบเอง หรืออยากได้ watchface เหมือนนาฬิกาสวยๆ บ้าง ซึ่ง App ประเภทนี้มีเยอะมาก เข้าไปดูในส่วนของ watchface ใน App Android Wear ได้เลย แต่ก็มีนักพัฒนาสร้าง App ที่ให้ผู้ใช้ออกแบบหน้า watchface เองได้ หรือดาวน์โหลดไฟล์ watchface ที่คนอื่นออกแบบมาติดตั้งเองได้ได้ด้วย ตอนนี้มีอยู่ 2 App ที่น่าสนใจ คือ Facer และ Watchmaker ดาวน์โหลดได้ที่ Playstore เหมือนเดิมครับ

Facer และ Watchmaker มีคลัง watchface ที่เดียวกันคือ facerepo.com ลองไปค้นดู watchface ที่คูณชอบและดาวน์โหลดมาใช้งานได้เลย เกือบลืม Facer ราคา 32.xx บาท ส่วน Watchmaker ดาวน์โหลดฟรี แต่ถ้าอยากใช้ watchface ที่ดาวน์โหลดมาจาก facerepo ต้องจ่ายค่า feature นี้เพิ่ม 36.xx บาท ราคาไม่แพง ซื้อมาลองเล่นสนุกๆ ได้

Facer

Continue reading

สวัสดี Moto 360

เนื่องจากรอซื้อ Moto 360 มานานมากนานจนลืมไปเลยว่าสั่งซื้อได้แล้ว ก็เลยใช้บริการจาก ThaiNexusMan ได้ Moto 360 มาอย่างรวดเร็ว เนื่องจากต้องการทดสอบเรื่องคาใจทั้งในเรื่อง flicker screen และเรื่อง ambient mode ใน Application ที่ได้ลองเขียน สรุปว่าลองกับเครื่องจริงไม่มีปัญหาอะไร ถ้ายังจำกันได้ผมเคยเขียนเรื่อง Watchface บน Android Wear ไปเมื่อนานมาแล้ว ลองไปค้นดูครับ ตอนแรกว่าจะ review เรื่อง Moto 360 คิดไปคิดมา ก็คงเหมือนๆ กับท่านอื่นที่ซื้อ Moto 360 มาใช้ล่ะครับ ก็เลยขออ้างอิงจาก Review Moto 360 จากคุณ ​Akeorcist ละกัน เพราะเขียนไว้ได้ละเอียดเลยทีเดียว สำหรับผมคงมาบ่นเรื่องการใช้งานนิดหน่อย

  1. คงเป็นเรื่องอาการแบตรั่วเป็นสายธาร เนื่องจาก rom ที่มากับเครื่องมีปัญหาเรื่องอาการกินไฟแบบสุดๆ แบตลดเร็วมาก ใจหายเลยเวลาหยิบเอามาเล่น แต่ปัญหานี้แก้ไขแล้วใน rom รุ่นใหม่ ทดสอบใช้งานตั้งแต่ 9.00 – 20.00 แบตเหลือ 63% พอรับได้
  2. ชาร์ตไม่รู้จักเต็มสักที เนื่องจากเราไม่สามารถปิดเครื่องแล้วใช้ wireless charge ได้ มันจะเปิดเครื่องขึ้นมาอัตโนมัติทุกครั้ง และหน้าจอ ambient ไม่ได้ช่วยให้แบตชาร์ตเร็ว แต่กลายเป็นช่วย discharge เรื่อยๆ ต่างหาก ทำให้การชาร์ตใช้เวลานาน ยิ่งชาร์ตนาน เครื่องยิ่งร้อน ไม่ดีต่อสุขภาพครับ วิธีแก้ไขง่ายๆ คือ ตั้งค่า ambient เป็น on ก่อนวางที่แท่นชาร์ต รอให้หน้าจอเข้า ambient mode แสงหน้าจอจะหรี่ลง ให้กดเปลี่ยนจาก ambient เป็น off หน้าจอจะดับทันที
  3. ความร้อนเรื่องนี้ไม่รู้จะแก้ยังไง เพราะตัวเครื่องเป็นอลูมิเนียมอยู่ในห้องแอร์คงช่วยได้
  4. Moto 360 มีแบตแค่ 300mAh น้อยมากๆ หน้าจอกินไฟมากที่สุด ถัดมาจะเป็นเรื่องของ watchface, background service ที่อยู่ในระบบ วิธีประหยัดแบตก็ง่ายมาก ตั้ง ambient เป็น off เลือก notification เฉพาะ app ที่ต้องใช้ เลือก watchface ธรรมดาๆ อย่าหวือหวามากนัก watchface ดุ๊กดิ๊กจะเป็นตัวกินแบต เพราะมีทั้งการแสดงผลและ background service โดน 2 เด้ง

เก็บตกจาก Becky Stern และ Lady Ada แห่ง Adafruit แงะ Moto 360 ออกมาให้ดูว่ามีอะไรข้างใน

หรือใครสนใจก็ลองตามไปอ่านต่อในรายละเอียดกันได้ครับ

เลือกปิด Notification จากมือถือไปยัง Android Wear

เนื่องจากทดลอง Android Wear มาสักระยะผ่านทาง Emulator โดยการเชื่อมต่อกับโทรศัพท์มือถือผ่าน Debug Mode ทำให้รู้สึกถึงความรำคาญของ Notification ของ App แทบทุกตัวที่ยิงเข้าไปที่ Emulator สำหรับนักพัฒนาที่พัฒนา Wear App หรือส่ง Notification ไปที่ Android Wear โดยส่วยตัวผมไม่ชอบ Notification เยอะๆ สักเท่าไร ลองนึกถึง GMail Notification ที่เป็น Stack ซ้อนๆ กันสัก 5 อันก็สยองแล้ว นี่ยังไม่รวม Facebook, Line ฯลฯ ทำให้คิดว่าน่าจะต้องหาทางปิด Notification ที่ไม่อยากให้ไปโผล่ใน Android Wear วิธีแก้ไขก็ง่ายมาก ตั้งค่าใน Android Wear App ดังนี้ครับ

เปิด Android Wear App ขึ้นมาก่อน

กดไปที่ Setting รูปเฟือง

เลือก Mute app notifications แล้วเลือก App ที่ต้องการไม่ให้แสดง Notification ไปยัง Android Wear ง่ายๆ แค่นี้ครับ

 

เขียน Custom Watch Face บน Android Wear กัน

ช่วงนี้ใน Google Play Store เริ่มมี App Watch Face มาให้ดาวน์โหลดกันเยอะขึ้น มี Watch Face ใหม่ๆ แทบจะทุกสัปดาห์ มีทั้งแบบฟรีและเสียเงิน ก็เลยคิดว่าถ้าจะเขียน Watch Face ในแบบที่ต้องการบ้างจะทำอย่างไร ซึ่งเท่าที่ลองค้นหาข้อมูลก็พบว่า Watch Face เขียนคล้ายกับ Launcher บน Android คือเขียน Wear App ปกติแต่ไปกำหนดใน AndroidManifest ว่าให้ทำหน้าที่เป็นอะไร ซึ่งถือว่าง่ายมากๆ ลองมาทำเล่นกันครับ

สิ่งที่ต้องมี

  • Android Studio รุ่นล่าสุด
  • Android SDK Rev 20
  • Android Wear System Image

อันดับแรกสร้าง AVD ขึ้นมาก่อนตามนี้

จากนั้น Start AVD เอาไว้ สำหรับท่านที่ใช้ Intel HAXM การทำงานของ Emulator ก็จะเร็วขึ้นมาบ้างนิดหน่อย T_T

สร้าง Project ขึ้นมาใหม่ เลือกเป็น Mobile และ Wear App เลือก Blank Activity ทั้งคู่

จากนั้น แก้ไข Android Manifest ที่ Wear Module เพิ่ม user permission ดังนี้

<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

จากนั้นกำหนดให้ Activity ฝังเป็น background ดังนี้

android:allowEmbedded="true"

เพิ่ม meta-data ลงไป เพื่อให้แสดง preview ตอนเลือกเปลี่ยน watch face ทำภาพขนาด 320×320 ใส่ลงใน res/drawable-hdpi

<meta-data
android:name="com.google.android.clockwork.home.preview"
android:resource="@drawable/ic_preview" />

ในส่วน intent-filter เพิ่ม category เพื่อกำหนดให้แสดงผลเป็น Background

<category android:name="com.google.android.clockwork.home.category.HOME_BACKGROUND" />

ตัวอย่าง Android Manifest

ทีนี้มาทำ Watch Face กัน แบบง่ายๆ แก้ไข layout ในไฟล์ rect_activity_wear.xml และ round_activity_wear.xml เพิ่ม ImageView และ TextClock ลงไปดังนี้

ใครอยากได้ภาพ Background ก็ทำภาพสวยๆ ขนาด 320x320px ใส่ลงไปได้ใน ImageView จากนั้นมาลองทดสอบ Wear App กัน วิธีการทดสอบทำได้ง่ายๆ สั่ง Run App บน AVD ที่เราสร้างขึ้น App จะ Run ขึ้นมาปกติ ให้เลื่อนขวา แล้วกดค้างที่หน้าจอ เพื่อเปลี่ยน watch face คุณก็จะเห็น watch face ของคุณขึ้นมา

วิธีการทำ Package สำหรับเผยแพร่ใน Play Store เนื่องจาก Wear Device ไม่สามารถเชื่อมต่อกับ Play Store ได้โดยตรง จำเป็นต้องใช้ Mobile App เป็น Payload ถ้าสั่งติดตั้ง Mobile App ที่มี Wear App อยู่ด้วย ตัวมือถือจะ Sync App ไปยังนาฬิกาให้อัตโนมัติ วิธีเพิ่ม wear apk ลงไปใน Mobile App ซึ่งก็มีอยู่ 2 วิธี คือ

  • Sign Package ของ Wear App แล้วเพิ่มเข้าไปใน Mobile App เอง
  • Sign Package ของ Wear App แล้วเพิ่มเข้าไปใน Mobile App แบบอัตโนมัติ

ก็เลือกอย่างหลังจะง่ายที่สุดครับ ให้ดู build.gradle ใน Mobile Module ว่าตั้งค่า WearApp เป็น dependencies แล้วหรือยัง (ถ้าเราสร้าง project มาพร้อมกัน Android Studio จะเพิ่ม WearApp เป็น dependency ให้อยู่แล้ว) จากนั้นสั่ง Generated Sign APK ที่ Mobile Module ได้เลย คุณก็จะได้ APK ที่เป็น Mobile App และมี Wear App อยู่ข้างใน ทีนี้ก็เอา Apk ที่ได้ เอาไปทดสอบกัน

วิธีการสร้าง Custom Watch Face นี้อาจไม่ถูกต้องนัก ทำสอบจาก Emulator มีผลข้างเคียงในเรื่องของการแสดงผล Notification และอาการ Screen Flick ซึ่งบนนาฬิกาจริงๆ ไม่รู้ว่ามีอาการแบบเดียวกันหรือไม่ ถ้าใครมี LG G Watch หรือ Gear Live ก็ฝากลองด้วย :P เอาไว้ถ้ามีวิธีการที่ดีกว่านี้ หรือ Google ปล่อย Watch Face API ออกมาแล้ว เดี๋ยวจะมาอัพเดทกันอีกรอบ :)

วิธีการเปิด ADB Debugging บน Android Wear

สำหรับท่านที่มี Smartwatch ที่ใช้ Android Wear สามารถเปิด ADB Debuging  บนนาฬิกาได้และสามารถสั่งงานผ่าน ADB ได้ สามารถ Debug Application ได้ และสามารถแสดงหน้าจอนาฬิกาผ่านโดยโปรแกรม Droid@Screen หรือใช้ Android Screen Monitor ได้ วิธีการเปิด ADB Debugging มีขั้นตอนดังนี้

  • เปิดหน้าจอนาฬิกา
  • เลือก Settings
  • เลือก About
  • กด Build Number ไป 7 ครั้ง
  • เลือนขวากลับไปหน้า Setting เลือก Developer Options
  • เลือก ADB Debugging
  • เลือกเปิด ADB Debugging

ตัวอย่างหน้าจอ เปิดหน้าจอหลักตัวนาฬิกา

แตะไปที่นาฬิกาเพื่อเลือกเมนู มันจะขึ้นเป็น Google Voice ไม่ต้องพูดอะไรครับ :P เลื่อนขึ้นเลือกเมนู Setting

เลื่อนขึ้นเลือกเมนู About

เลื่อนขึ้นเลือกตรง Build Number แตะไป 7 ครั้ง ตัวนาฬิกาจะบอกว่าเปิด Developer Option แล้ว

เลื่อนขวากลับไปหน้า Setting จะพบว่ามีเมนู Developer Options ขึ้นมาแล้ว

แตะเลือก Developer Options เลื่อนไปเลือกตรงเมนู ADB Debugging

จะขึ้นหน้าจอถามว่าจะต้องการเปิด ADB Debugging มั๊ย กดปุ่มสีเขียวได้เลย

ปล. ท่านที่ใช้ Emulator ไม่ต้องกดตามนะครับ :P

มาเขียน Notification บน Android Wear กัน

Android Wear เป็น Platform SmartWatch ที่เพิ่งเปิดตัวไปเมื่อไม่นานมานี้ จากงาน Google I/O 2014 ในเบื้องต้น Android Wear เน้นการเชื่อมต่อกับ Smartwatch และ tablet สามารถ share notification ได้อัตโนมัติ โดย notification ที่แสดงผลบน Smartphone จะแสดงผลบน Smartwatch ด้วยเช่นกัน โดยแสดงผลเป็น card ในรูปแบบของ context stream การใช้ notification ที่เชื่อมระหว่าง Smartphone และ Smartwatch สามารถช่วยสร้างประสบการณ์การใช้งานที่ดีให้กับผู้ใช้ได้ หากคุณเพิ่มฟังก์ชั่นการใช้งานเข้าไปให้กับ notification ที่คุณสร้างด้วย

มาลองสร้าง Notification บน Android Wear กัน สำหรับท่านที่เคยเขียน Notification บน Android มาแล้ว อาจจะคุ้นเคยกับ Notification Builder สำหรับ Smartphone กันอยู่แล้ว แต่ถ้าคุณต้องการสร้าง Notification เพื่อให้แสดงผลทั้งบน Smartphone และ Smartwatch ด้วยจะต้องใช้ NotificationCompat Builder สำหรับการใช้งาน NotificationCompat คุณจะต้องเรียกใช้ library จาก Android Support Library มาทดลองเขียนกันครับ

ขั้นแรกสิ่งที่คุณต้องมี

  • Android Studio 0.8.x รุ่นล่าสุด
  • Android Wear System Image ใช้ Atom ได้จะเร็วมาก อย่าลืมติดตั้ง HAXM ด้วย
  • Android Support Library
  • Android Wear App ดาวน์โหลดได้ที่ Google Play Store

Continue reading