แก้ไขข้อบกพร่องและทดสอบ

Dialer มีเฟรมเวิร์กการดีบักและการทดสอบในตัวที่ช่วยให้คุณสามารถตรวจสอบคุณสมบัติของแอป Dialer ได้โดยไม่ต้องใช้อุปกรณ์ที่พร้อมสำหรับการโทร ซึ่งช่วยลดความจำเป็นในการใช้บลูทูธและโทรศัพท์ที่เชื่อมต่อกับบริการเซลลูล่าร์ กรอบการทดสอบตัวเรียกเลขหมาย (DTF) นี้ทำให้กระบวนการเหล่านี้ง่ายขึ้น:

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

เนื่องจากฟังก์ชันการทำงานของ Dialer ขึ้นอยู่กับกลุ่มเทคโนโลยีหลายอย่าง รวมถึง Telecom, Telephony และ Bluetooth Hands Free Profile (HFP) จุดบกพร่องและปัญหาที่เกิดขึ้นในการขึ้นต่อกันเหล่านั้นอาจทำให้เกิดความไม่สม่ำเสมอของ Dialer DTF ช่วยให้ Dialer ทำงานโดยอิสระจากการขึ้นต่อกันเหล่านี้

คุณสมบัติ

DTF มีคุณสมบัติเหล่านี้:

  • ตำแหน่งการโทร โทรออกและรับสายโดยไม่จำเป็นต้องใช้อุปกรณ์ที่พร้อมโทรผ่านเทอร์มินัลด้วยการออกอากาศ Android Debug Bridge (adb)
  • โทรจำลอง ฟังก์ชั่นการโทรถูกล้อเลียน ซึ่งรวมถึงการระงับ การปิดเสียง การรวม และการยกเลิกการเชื่อมต่อ

ใช้ ดีทีเอฟ

หมายเหตุ: DTF ใช้งานได้ใน Android 11 ขึ้นไปเท่านั้น

หากต้องการใช้ DTF:

  1. สร้างและติดตั้งชุดตัวเลือกบิลด์ CarDialerAppForTesting ดังนี้:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    ด้วยเหตุนี้ CarDialerAppForTesting จึงมาแทนที่แอป Dialer ดั้งเดิมบนอุปกรณ์ทดสอบ

    CarDialerAppForTesting ไม่สามารถใช้งานกับอุปกรณ์จริงได้ หากต้องการทดสอบกับอุปกรณ์จริง ให้ติดตั้ง CarDialerApp.apk อีกครั้ง

คำสั่ง

คำสั่ง adb ต่อไปนี้ใช้งานได้เฉพาะหลังจากเปิด Dialer เป็นครั้งแรก และกำหนดให้เครื่องรับการออกอากาศต้องเริ่มต้นใช้งาน หลังจากเปิดตัว Dialer จะต้องเชื่อมต่ออุปกรณ์บลูทูธปลอม ใช้สิ่งต่อไปนี้ (ตั้งค่า) เชื่อมต่อคำสั่งอุปกรณ์เพื่อดำเนินการดังกล่าว

(ตั้งค่า) เชื่อมต่ออุปกรณ์

สร้างการเชื่อมต่อ Bluetooth ปลอมกับ Dialer และต้องถูกเรียกก่อนจึงจะสามารถเข้าถึงคำสั่งที่เกี่ยวข้องกับการโทรทั้งหมดได้

ในการเชื่อมต่ออุปกรณ์:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"

หมายเหตุ: หลังจากเชื่อมต่ออุปกรณ์ Bluetooth ปลอมแล้วเท่านั้นจึงจะสามารถใช้คำสั่งแต่ละคำสั่งต่อไปนี้ได้

โทรออก

หากต้องการโทรออก:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"

รับสายเรียกเข้า

หากต้องการรับสายเรียกเข้า:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"

วางสาย

ในการวางสาย:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"

พักสายปัจจุบัน

หากต้องการพักสายปัจจุบัน:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"

ยกเลิกการพักสายปัจจุบัน

หากต้องการพักสายปัจจุบัน:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

รวมสาย

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

หากต้องการรวมสาย:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

เคลียร์ทุกสาย

หากต้องการลบสายทั้งหมดในรายการโทร:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"

สร้างโปรแกรมจำลอง

บางครั้งนักพัฒนาอาจต้องการทดสอบการเปลี่ยนแปลง UI บนเครื่องจำลอง ในกรณีเช่นนี้ CarDialerAppEmulatorBuild มีการตั้งค่าที่ง่ายขึ้นและมีฟังก์ชันการทำงานที่จำกัดเมื่อเทียบกับ DTF ที่ทรงพลังกว่า

ข้อมูลการทดสอบ

เมื่อเปิด Dialer หน้าข้อผิดพลาด Bluetooth จะถูกข้ามไป และเนื้อหาหลักของ TelecomActivity จะปรากฏขึ้น รายชื่อและบันทึกการโทรจะแสดงบนอุปกรณ์ท้องถิ่น นักพัฒนาสามารถใช้แอพ Stock Contacts เพื่อสร้างรายชื่อทดสอบหรือนำเข้าไฟล์ .vcf

โทรมาเยาะเย้ย

หากต้องการจำลองการโทรเข้า ให้ใช้ Android Emulator เพื่อส่งคำสั่ง Telnet หากต้องการเรียนรู้เพิ่มเติม โปรดดู เรียกใช้แอปบน Android Emulator และ ส่งคำสั่งคอนโซล Emulator

telnet localhost 5554
gsm call xxx-xxx-xxxx

การโทรออกในแอพ Dialer หรือการถ่ายทอดเจตนาการโทรจะเป็นการเริ่มการโทรออก

adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx