รายละเอียดทางเทคนิค

แผนภาพต่อไปนี้แสดงคอมโพเนนต์ของระบบที่โต้ตอบกับ Dialer

คอมโพเนนต์ที่โต้ตอบกับ Dialer

รูปที่ 1 คอมโพเนนต์ที่โต้ตอบกับ Dialer

  • UI ของระบบ แสดงองค์ประกอบการนําทางที่ต่ำกว่าเพื่อโฮสต์ปุ่มโทรศัพท์ ซึ่งจะบันทึก Intent intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end ซึ่งจะเริ่มต้นกิจกรรมหลักของผู้ใช้ TelecomActivity

  • ตัวเปิดแอป จัดการรายการแอปทั้งหมด Dialer ประกาศ TelecomActivity ด้วย android.intent.category.LAUNCHER การเลือกแอปโทรศัพท์จากรายการแอปของ Launcher จะแสดง TelecomActivity

  • วิดเจ็ตหน้าแรก ในข้อมูลอ้างอิง AOSP ไม่มีวิดเจ็ต Home OEM อาจต้องพิจารณาเพิ่มวิดเจ็ตหน้าแรกสำหรับโปรแกรมโทรออกเพื่อแสดงสถานะของโทรศัพท์ที่เชื่อมต่ออยู่ในปัจจุบัน (รวมถึงข้อมูลอื่นๆ)

  • ศูนย์การแจ้งเตือน

    • การแจ้งเตือน Heads Up (HUN) จะแสดงขึ้นเมื่อมีสายเรียกเข้า เมื่อ Dialer ของ InCallServiceImpl ได้รับสายเรียกเข้า Dialer จะโพสต์ HUN ไปยังศูนย์การแจ้งเตือน ซึ่งจะแสดงรายละเอียดการโทร เช่น หมายเลขโทรศัพท์หรือข้อมูลติดต่อ นอกจากนี้ Dialer ยังแสดงปุ่มดำเนินการ 2 ปุ่ม ได้แก่ รับสายและปฏิเสธ เมื่อแตะปุ่มรับสาย ระบบจะรับสายและ InCallServiceImpl จะจัดการสายที่ใช้งานอยู่เพื่อแสดง UI ของสายใน Dialer และปิด HUN การคลิก HUN จะแสดงหน้าการโทรแบบเต็มหน้าจอที่มีปุ่มรับสายและปฏิเสธ

    • การแจ้งเตือนจะปรากฏขึ้นสำหรับสายที่ไม่ได้รับซึ่งยังไม่ได้อ่าน การคลิกการแจ้งเตือนจะแสดงหน้าประวัติการโทรและทําเครื่องหมายสายที่ไม่ได้รับว่าอ่านแล้ว การแตะปุ่มโทรกลับจะเป็นการโทรออกและแสดงอินเทอร์เฟซผู้ใช้ระหว่างการโทรของ Dialer

  • Assistant ผู้ใช้สามารถขอให้ผู้ช่วยโทรออกซึ่งอาจแสดงอินเทอร์เฟซผู้ใช้ของแป้นโทรศัพท์ขณะโทร

  • Google Maps การโทรหาผู้ขายจาก Google Maps จะส่ง Intent ของ DIAL พร้อมหมายเลขโทรศัพท์เพิ่มเติม ซึ่งจะเปิดหน้าแป้นโทรศัพท์สำหรับการโทรด่วน

  • CarInputService. ตรวจสอบปุ่มโทรและวางสายบนพวงมาลัย การกดปุ่มต่อไปนี้

    • ปุ่มโทรจากพวงมาลัยเมื่อไม่มีการโทรเข้าจะส่ง Intent ของ DIAL และแสดงหน้าแป้นโทรศัพท์ของ Dialer

    • ปุ่มโทรจากพวงมาลัยเมื่อมีสายเรียกเข้าจะทำให้ TelecomManager รับสาย

    • ปุ่มวางสายจากพวงมาลัยเมื่อมีสายเรียกเข้า TelecomManager จะวางสาย

  • บลูทูธ

    • PBAPClient ดาวน์โหลดรายชื่อติดต่อจากโทรศัพท์และเขียนไปยังผู้ให้บริการรายชื่อติดต่อ ระบบจะสร้างบัญชีสำหรับโทรศัพท์แต่ละเครื่องที่เชื่อมต่อโดยใช้ที่อยู่ MAC ของบลูทูธเป็นชื่อบัญชี และ com.android.bluetooth.pbapsink (@string/pbap_account_type ที่ระบุไว้ใน packages/apps/Bluetooth) เป็นประเภทบัญชี ระบบจะเขียนข้อมูลติดต่อไปยังผู้ให้บริการข้อมูลติดต่อด้วยข้อมูลบัญชีและล้างข้อมูลเมื่อยกเลิกการเชื่อมต่อโทรศัพท์ PBAPClient จะไม่โต้ตอบกับ Dialer โดยตรง แต่เขียนรายชื่อติดต่อไปยังผู้ให้บริการรายชื่อติดต่อแทน ตัวต่อสายโทรศัพท์อ่านรายชื่อติดต่อจาก Contacts Provider

    • HfpClientConnectionService จัดการการโทรผ่านบลูทูธผ่าน HFP และรายงานการโทรไปยังบริการโทรคมนาคม

  • โทรคมนาคม เฟรมเวิร์ก Android Telecom จะจัดการการโทรด้วยเสียงและวิดีโอคอลในอุปกรณ์ Android เนื่องจาก Dialer เป็นแอปโทรศัพท์เริ่มต้น จึงจะใช้ InCallService API และ InCallController จะเชื่อมโยงการใช้งาน InCallService ของ Dialer เพื่อจัดการการโทร โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อสร้างแอปโทรศัพท์สำหรับใช้แทนและการเป็นแอปโทรศัพท์เริ่มต้น

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

  • เครื่องมือตรวจจับการเสียสมาธิของผู้ขับขี่ บริการระบบ Android นี้จะจำกัด UX ตามสถานะการขับขี่ของรถ Dialer ต้องดำเนินการตามข้อจำกัดทั้งหมดที่รบกวน UX ขณะขับรถ โดยต้องฟัง CarUXRestrictionManager และนำนโยบายทั้งหมดไปใช้ Dialer ต้องมีลักษณะดังนี้

    • เชื่อมต่อกับไลบรารี Car และรับอินสแตนซ์ของ CarUXRestrictionManager

    • สมัครรับข้อมูลอัปเดตในรายการ CarUxRestrictions และนำไปใช้งานตามที่ระบุไว้ในเอกสาร

    • สิ่งสำคัญอย่างยิ่งสำหรับ Dialer

      • หน้าการตั้งค่าได้รับการเพิ่มประสิทธิภาพสำหรับยานพาหนะ ผู้ใช้เข้าถึงหน้าการตั้งค่าแป้นโทรไม่ได้ขณะขับรถ เมื่อแตะเมนูการตั้งค่าจากแถบการดำเนินการ ระบบจะแสดงหน้าจอบล็อกเพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงการตั้งค่าขณะขับรถ หากหน้าการตั้งค่าแสดงอยู่แล้ว หน้าจอการบล็อกจะปรากฏขึ้นเพื่อหยุดการโต้ตอบของผู้ใช้

      • เข้าถึงการตั้งค่าระบบขณะขับรถไม่ได้ ในหน้าข้อผิดพลาด เมื่อไม่มีอุปกรณ์บลูทูธเชื่อมต่ออยู่ ปุ่มเชื่อมต่อกับบลูทูธจะแสดงหน้าการตั้งค่าบลูทูธของระบบ UXR ของปุ่มนี้ถูกจํากัดโดยสมบูรณ์ ขณะขับรถ การคลิกปุ่มนี้จะแสดงข้อความแสดงข้อผิดพลาดเพื่อแจ้งให้ผู้ใช้จอดรถก่อนแล้วค่อยดำเนินการ

      • ผู้ใช้ไม่สามารถเริ่มขั้นตอนการเพิ่มรายการโปรดขณะขับรถ ปุ่มเพิ่มรายการโปรดปิดอยู่

โฟลว์ผู้ใช้

Dialer Main

หน้าต่างๆ ของโปรแกรมโทรมีดังนี้

หน้าหลักของ Dialer

รูปที่ 2 หน้าหลักของ Dialer

การจัดการสายเรียกเข้า

ขั้นตอนกระบวนการส่งต่อสายมีดังนี้

การจัดการสายเรียกเข้า

รูปที่ 3 การจัดการสายเรียกเข้า

การแจ้งเตือน

หน้าการแจ้งเตือนต่างๆ จะแสดงอยู่ด้านล่าง

การแจ้งเตือน

รูปที่ 4 การแจ้งเตือน

สถานะระหว่างการโทร

ขั้นตอนในหน้าระหว่างการโทรแสดงอยู่ด้านล่าง

หน้าระหว่างการโทร

รูปที่ 5 หน้าระหว่างการโทร

การแสดงผลของ Search มีดังนี้

ค้นหา

รูปที่ 6 ค้นหา

การตั้งค่า

ตัวเลือกการตั้งค่ามีดังนี้

การตั้งค่า

รูปที่ 7 การตั้งค่า