บทที่ 9 – สร้างแอพให้โทรออก และรับส่ง SMS

คุณสมบัติของแอพ

ในบทนี้ จะสอนสร้างแอพที่สามารถโทรออก รวมทั้งรับและส่ง SMS ได้ นอกจากนี้ ยังแนะนำให้รู้จักปุ่ม phoneNumberPicker ที่จะแสดงเบอร์โทรศัพท์ในเครื่องให้เราเลือกโทร พร้อมกับสาธิตการใช้งานร่วมกับนาฬิกา เพื่อบันทึกเวลาที่โทร และจำนวนวินาที แล้วแสดงผลออกมาทางไดอะล็อกบ๊อกซ์

คอมโพเนนต์ที่กล่าวถึง

  • PhoneNumberPicker เป็นปุ่มที่เมื่อคลิ้ก จะแสดงเบอร์โทรศัพท์ที่มีในเครื่อง ให้ผู้ใช้เลือก
  • PhoneCall ใช้สำหรับการโทรออก และรับสายที่โทรเข้า
  • Texting ใช้สำหรับรับและส่งข้อความ SMS
  • Notifier ใช้แสดงไดอะล็อกแบบต่างๆ เพื่อสื่อสารให้ผู้ใช้ทราบ โดยไดอะล็อกจะปรากฎอยู่เหนือหน้าจอหลักของแอพ และเมื่อปิด ก็จะหายไป
  • Clock ในบทนี้จะใช้ทำหน้าที่หลายๆ อย่าง คือ
    • ใช้บอกวันที่ และเวลาปัจจุบัน
    • ใช้คำนวณระยะเวลา เมื่อกำหนดเวลาที่เริ่มโทร จนถึงเวลาที่วางสาย

ในบทนี้จะแสดงตัวอย่างการประยุกต์ใช้ properties บางอย่างของ Texbox ได้แก่
  • Hint เป็นข้อความที่แสดงในช่อง Texbox ในขณะที่ยังว่างอยู่ เพื่อบอกผู้ใช้ว่า ควรจะต้องใส่อะไรลงในช่องนี้ เมื่อผู้ใช้เริ่มใส่ข้อความลงในช่อง ข้อความ Hint ก็จะหายไป
  • Number Only หากทำเครื่องหมายถูกหน้าช่องนี้ จะเป็นการกำหนดให้ผู้ใช้ใส่ได้เฉพาะตัวเลขลงในช่องนี้เท่านั้น และคีย์บอร์ดก็จะแสดงเฉพาะปุ่มตัวเลข ซึ่งจะทำให้การป้อนข้อมูลตัวเลขสะดวกขึ้น
  • MultiLine หากทำเครื่องหมายถูกหน้าช่องนี้ จะเป็นการกำหนดให้ผู้ใช้สามารถใส่ข้อความได้หลายบรรทัด โดยจะมีปุ่ม Enter ให้กดเพื่อขึ้นบรรทัดใหม่ได้ เหมาะสำหรับช่องใส่ข้อความยาวๆ เช่น ที่อยู่
สำหรับคอมโพเนนต์ Texting มี properties สำคัญในบทนี้ คือ
  • Receiving Enabled ใช้กำหนดว่า จะให้รับ SMS หรือไม่ โดยมีให้เลือก 3 ค่า คือ
    • Off คือไม่รับ SMS
    • Foreground คือ รับ SMS เมื่อเปิดแอพนี้ให้ทำงาน และแอพปรากฏบนหน้าจอของอุปกรณ์
    • Always คือ ให้รับ SMS ตลอด แม้ไม่ได้เปิดแอพ พอเราเปิดแอพขึ้นมา ก็จะดึงข้อความ SMS ที่ได้รับมาแสดงด้วย

บล็อกที่สำคัญ

  • PhoneNumberPicker AfterPicking เป็นอีเวนต์ที่เกิดขึ้นเมื่อผู้ใช้เลือกเบอร์โทรศัพท์ด้วยปุ่ม PhoneNumberPicker
  • PhoneNumberPicker PhoneNumber เป็นบล็อกที่เก็บเบอร์โทรศัพท์ที่ผู้ใช้เลือกไว้
  • PhoneCall PhoneNumber ใช้กำหนดเบอร์โทรศัพท์ที่จะโทรออก
  • MakePhoneCall ใช้สั่งให้โทรออกไปยังเบอร์โทรศัพท์ที่กำหนด
  • PhoneCallStart เป็นอีเวนต์ที่เกิดขึ้นเมื่อเริ่มโทรออก หรือมีคนโทรเข้ามา โดยในอีเวนต์นี้ จะให้เบอร์โทรศัพท์ไว้ในตัวแปร phoneNumber และมีตัวแปร status บอกถึงการโทรเข้า หรือโทรออก

    • โทรเข้า status จะมีค่าเป็น 1
    • โทรออก status จะเป็น 2

  • IncomingCallAnswer เป็นอีเวนต์ที่เกิดขึ้นเมื่อมีการรับสาย
  • PhoneCallEnd เป็นอีเวนต์ที่เกิดขึ้นเมื่อวางสาย โดยตัวเลข status จะบอกว่า วางสายอย่างไร

    • ถ้าคนโทรเข้ามาแล้วรับไม่ทัน เป็น miss call หรือเรากด ไม่รับสาย status ก็จะเป็น 1
    • ถ้าคนโทรเข้ามา เรารับสาย status จะเป็น 2
    • ถ้าเราเป็นคนโทรออก แล้ววางสาย status จะเป็น 3

  • MessageReceived เป็นอีเวนต์ที่เกิดขึ้นเมื่อได้รับ SMS เข้ามา ในอีเวนต์นี้จะมีตัวแปร number และ message ซึ่งเก็บเบอร์ และข้อความ SMS ที่รับเข้ามา
  • Texting PhoneNumber ใช้กำหนดเบอร์โทรศัพท์ที่จะส่ง SMS
  • Texting Message ใช้กำหนดข้อความ SMS ที่จะส่งออก
  • Send Message เป็นคำสั่งสำหรับส่ง SMS ไปยังเบอร์ที่กำหนด
  • ShowMessageDialog เป็นการสั่งให้แสดงไดอะล็อกแบบที่มีเพียงข้อความ และมีปุ่มให้ผู้ใช้คลิ้กเพื่อปิดไดอะล็อก
  • Now บล็อกนี้จะให้วันที่ และเวลา ณ ขณะนั้น
  • FormatDateTime ใช้จัดรูปแบบการแสดงผล วันที่ และเวลาตามรูปแบบ (pattern) ที่กำหนด
  • Duration ใช้คำนวณหาคาบเวลา ระหว่างค่าเวลา 2 ค่า
  • DurationToSecond แปลงคาบเวลาให้เป็นหน่วยวินาที

ความรู้อื่นๆ

  • อธิบายไดอะล็อกประเภทต่างๆ ที่มากับคอมโพเนนต์ Notifier
  • ความรู้เกี่ยวกับ HTML tag ที่ใช้กับไดอะล็อกได้

Comments

Popular posts from this blog

บทที่ 4 - เรียนรู้เกี่ยวกับ User Interface

บทที่ 17 – สร้างแอพ Pomodoro

บทที่ 13 – รู้จักกับ Orientation sensor