ทดสอบโดยใช้เครื่องเสียงสำหรับเดสก์ท็อป

เครื่องเสียงเดสก์ท็อป (DHU) ช่วยให้เครื่องพัฒนาสามารถจำลองเครื่องเล่นวิทยุ ของ Android Auto เพื่อให้คุณเรียกใช้และทดสอบแอป Android Auto ได้ DHU ทำงานบนระบบ Windows, macOS และ Linux

หลังจากติดตั้ง DHU แล้ว คุณจะทดสอบแอป Android Auto ได้โดยเชื่อมต่ออุปกรณ์เคลื่อนที่กับ DHU โดยใช้กลไกการเชื่อมต่อที่รองรับอย่างใดอย่างหนึ่งที่อธิบายไว้ในเรียกใช้ DHU

หากต้องการรายงานข้อบกพร่องหรือขอฟีเจอร์ที่เกี่ยวข้องกับ DHU ให้ใช้เครื่องมือติดตามปัญหา

ติดตั้ง DHU

ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้ง DHU ในเครื่องสำหรับการพัฒนา

  1. เปิดใช้โหมดนักพัฒนาซอฟต์แวร์ในอุปกรณ์เคลื่อนที่ที่ใช้ Android 9 (API ระดับ 28) ขึ้นไปตามที่อธิบายไว้ในกำหนดค่าตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ในอุปกรณ์
  2. คอมไพล์และติดตั้งแอปในอุปกรณ์
  3. ติดตั้ง Android Auto ในอุปกรณ์ หากติดตั้ง Android Auto ไว้แล้ว ให้ตรวจสอบว่าคุณใช้เวอร์ชันล่าสุด
  4. ใน Android Studio ให้เปิดเครื่องมือจัดการ SDK แล้วไปที่แท็บเครื่องมือ SDK จากนั้นดาวน์โหลดแพ็กเกจ Android Auto โปรแกรมจำลองจอภาพส่วนกลางบนเดสก์ท็อป

เครื่องมือจัดการ SDK ที่แสดง DHU 2.0

DHU จะติดตั้งอยู่ในไดเรกทอรี SDK_LOCATION/extras/google/auto/

  1. ในระบบ Linux หรือ macOS ให้เรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีดังกล่าวเพื่อให้ไบนารี DHU เป็นไฟล์ปฏิบัติการ

    chmod +x ./desktop-head-unit
    

ขั้นตอนเพิ่มเติมสำหรับ Linux

หากใช้ DHU เวอร์ชัน 2.x ในระบบ Linux คุณจะต้องติดตั้งไลบรารีเพิ่มเติม ไฟล์ DHU ขึ้นอยู่กับ GLIBC เวอร์ชัน 2.32 ขึ้นไป คุณตรวจสอบเวอร์ชัน GLIBC ของระบบได้โดยเรียกใช้คำสั่งนี้

ldd --version

หากเวอร์ชันต่ำกว่า 2.32 ให้อัปเดต GLIBC เป็น 2.32 ขึ้นไป ซึ่งคุณอาจต้องอัปเกรดระบบปฏิบัติการเป็นเวอร์ชันที่เข้ากันได้กับ GLIBC 2.32 ขึ้นไป

คุณต้องติดตั้งไลบรารี libc++1 และ libc++abi1 ด้วย ขั้นตอนการติดตั้งจะแตกต่างกันไปโดยขึ้นอยู่กับดิสทริบิวชัน Linux ของคุณ ตัวอย่างเช่น ในระบบปฏิบัติการ Linux ที่ใช้ Debian คุณจะติดตั้งไลบรารีได้ด้วยคำสั่งนี้

sudo apt-get install libc++1 libc++abi1

ติดตั้ง DHU เวอร์ชันก่อนเผยแพร่

หากต้องการเข้าถึง DHU เวอร์ชันก่อนเปิดตัว คุณสามารถใช้ Android Studio เวอร์ชันตัวอย่าง หรือเปลี่ยนช่องทางการอัปเดตการติดตั้ง Android Studio ที่มีอยู่เป็นช่องทางเบต้า

เรียกใช้ DHU

หลังจากติดตั้ง DHU แล้ว คุณจะทดสอบแอป Android Auto ได้โดยเชื่อมต่ออุปกรณ์เคลื่อนที่กับเวิร์กสเตชันผ่าน USB เรียกใช้ DHU โดยเชื่อมต่ออุปกรณ์เคลื่อนที่กับเครื่องสำหรับพัฒนาโดยใช้โหมดอุปกรณ์เสริม (แนะนำสำหรับ DHU 2.x) หรือการต่อท่อ ADB

เชื่อมต่อโดยใช้โหมดอุปกรณ์เสริม

Android Auto รองรับการเชื่อมต่อกับ DHU เวอร์ชัน 2.x ด้วยโปรโตคอล Android Open Accessory (AOA) โดยใช้คำสั่งต่อไปนี้

./desktop-head-unit --usb

โดยค่าเริ่มต้น DHU จะสแกนผ่านรายการอุปกรณ์ USB ที่มีอยู่และจะพยายามเชื่อมต่อกับอุปกรณ์แรกที่เข้ากันได้ หากต้องการกำหนดเป้าหมายอุปกรณ์ที่เฉพาะเจาะจง ให้ใส่รหัสอุปกรณ์เป็นส่วนหนึ่งของคำสั่ง --usb ดังนี้

./desktop-head-unit --usb=[DEVICE_ID]

เชื่อมต่อโดยใช้ ADB Tunneling

วิธีนี้กำหนดให้ต้องตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์ของหัวรถ Android Auto ผ่าน Android Debug Bridge (adb) ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าการเทนเนลิงและเรียกใช้ DHU

  1. เปิดใช้โหมดนักพัฒนาซอฟต์แวร์ Android Auto หากยังไม่ได้เปิดใช้งาน
  2. หากเซิร์ฟเวอร์ของจอภาพส่วนกลางไม่ทำงานอยู่ ให้เปิดเมนูรายการเพิ่มเติมแล้วเลือกเริ่มเซิร์ฟเวอร์ของจอภาพส่วนกลาง ดังที่แสดงในรูปที่ 1

    ในอุปกรณ์ บริการที่ทำงานอยู่เบื้องหน้าจะปรากฏขึ้นในพื้นที่การแจ้งเตือนซึ่งบ่งบอกว่าเซิร์ฟเวอร์ทำงานอยู่ ดังที่แสดงในรูปที่ 2

    เมนูตามบริบทที่มีตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์

    รูปที่ 1 เมนูตามบริบทที่มีตัวเลือกสำหรับนักพัฒนาแอป

    การแจ้งเตือนว่าเซิร์ฟเวอร์ของจอภาพหลักทำงานอยู่

    รูปที่ 2 การแจ้งเตือนว่าเซิร์ฟเวอร์ของจอภาพหลักทำงานอยู่

  3. ในแอป Android Auto ให้แตะรถที่เชื่อมต่อก่อนหน้านี้ใกล้กับด้านบนของการตั้งค่า และตรวจสอบว่าได้เปิดใช้เพิ่มรถคันใหม่ไปยัง Android Auto แล้ว

  4. เชื่อมต่ออุปกรณ์เคลื่อนที่กับเครื่องสำหรับพัฒนาโดยใช้ USB

  5. ตรวจสอบว่าอุปกรณ์เคลื่อนที่ปลดล็อกหน้าจออยู่เพื่อให้เปิด DHU ได้

  6. ในเครื่องสำหรับพัฒนา ให้เรียกใช้คำสั่ง adb ต่อไปนี้เพื่อส่งต่อการเชื่อมต่อซ็อกเก็ตจากพอร์ต 5277 ของเครื่องสำหรับพัฒนาไปยังหมายเลขพอร์ตเดียวกันในอุปกรณ์ Android การกำหนดค่านี้ช่วยให้ DHU เชื่อมต่อกับเซิร์ฟเวอร์ระบบเครื่องเสียงที่ทำงานบนอุปกรณ์เคลื่อนที่ผ่านซ็อกเก็ต TCP

    adb forward tcp:5277 tcp:5277
    
  7. เริ่ม DHU โดยเรียกใช้คําสั่ง desktop-head-unit.exe ใน Windows หรือ ./desktop-head-unit ใน macOS หรือ Linux จากไดเรกทอรี SDK_LOCATION/extras/google/auto/

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
    

DHU ทำงานบนเครื่องพัฒนา

  1. หากเชื่อมต่ออุปกรณ์เคลื่อนที่กับ DHU เป็นครั้งแรก ให้ตรวจสอบหน้าจอของอุปกรณ์เคลื่อนที่เพื่อยอมรับข้อกำหนดในการให้บริการและปรับการตั้งค่าสิทธิ์ตามต้องการ

หลังจากเริ่มใช้ DHU แล้ว คุณจะใช้คำสั่งในคอนโซล DHU เพื่อเรียกใช้และทดสอบแอปได้

ตัวเลือกบรรทัดคำสั่ง

โดยค่าเริ่มต้น เซิร์ฟเวอร์ของจอภาพส่วนกลางจะเชื่อมต่อผ่านพอร์ต 5277 หากต้องการลบล้างโฮสต์หรือพอร์ต ให้ใช้แฟล็ก --adb=<[localhost:]port> ดังที่แสดงในตัวอย่างต่อไปนี้

./desktop-head-unit --adb=5999

โดยค่าเริ่มต้น DHU จะจำลองเป็นจอภาพหลักที่เข้ากันได้กับ Android Auto ที่มีอินเทอร์เฟซผู้ใช้แบบหน้าจอสัมผัส จำลองการสัมผัสของผู้ใช้โดยคลิก DHU ด้วยเมาส์ หากต้องการจําลองส่วนหัวที่ใช้ตัวควบคุมแบบหมุนสําหรับอินพุต คุณสามารถใช้ Flag -i rotary ดังที่แสดงในตัวอย่างต่อไปนี้

./desktop-head-unit -i controller

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

ตัวเลือกบรรทัดคำสั่งอื่นๆ สำหรับ DHU มีอยู่ในตารางต่อไปนี้

ตัวเลือก คำอธิบาย
-c, --config=FILE ใช้การกำหนดค่าที่ระบุ .ini ดูรายละเอียดเพิ่มเติมได้ที่ส่วนกําหนดค่า DHU
-i, --input=INPUT ใช้โหมดอินพุตที่ระบุ ซึ่งได้แก่ touch, rotary หรือ hybrid
-a, --adb=HOSTPORT ใช้การขนส่ง ADB ไม่บังคับ host:port หรือ port ค่าเริ่มต้นคือพอร์ต 5277
-a, --usb=DEVICE_ID ใช้การขนส่ง AOA ผ่าน USB DEVICE_ID (ไม่บังคับ)
-v, --version แสดงข้อมูลเวอร์ชัน
-l, --licenses แสดงใบอนุญาตโอเพนซอร์ส
-h, --headless ทำงานในโหมดไม่มีส่วนหัวโดยไม่มี UI
-t, --always_show_window_on_top แสดงหน้าต่าง DHU เหนือหน้าต่างอื่นๆ (ปิดอยู่โดยค่าเริ่มต้น)
-?, --help แสดงรายการความช่วยเหลือ

คู่มือผู้ใช้ DHU

ส่วนนี้จะอธิบายฟีเจอร์ที่ DHU รองรับและวิธีใช้งาน

ป้อนคำสั่งในหน้าต่างเทอร์มินัลที่คุณเริ่มใช้ DHU คุณเรียกใช้คำสั่งหลายรายการในบรรทัดเดียวกันได้โดยคั่นด้วย ;

ระบบ

คำสั่ง คีย์ คำอธิบาย
help [command] แสดงชุดคำสั่งทั้งหมด หากระบุชื่อคําสั่ง ให้แสดงความช่วยเหลือสําหรับคําสั่งนั้น
quit
exit
Alt+Q ปิดระบบเครื่องเสียง
sleep [seconds] หยุดทำงาน 1 วินาที หากระบุการเลื่อนเวลาไว้ ระบบจะหยุดทำงาน seconds รายการ สามารถใช้สคริปต์นี้กับส่วนหัวที่มี ./desktop-head-unit < script.txt ในสภาพแวดล้อม CI ได้
screenshot filename.png บันทึกภาพหน้าจอไปยัง filename.png.
licenses แสดงใบอนุญาตของไลบรารีที่ใช้ใน DHU
keycode keycode ส่ง keycode ซึ่งเป็นหนึ่งในชื่อที่แสดงในส่วนรหัสคีย์

ระบบสัมผัสและทัชแพด

เมื่อเปิดใช้การแตะหรือทัชแพด การคลิกในหน้าต่าง การแสดงผล สำหรับหน้าต่างการแตะหรือหน้าต่างทัชแพด สำหรับทัชแพด จะเป็นการลงทะเบียนเป็นเหตุการณ์การแตะ

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

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

คำสั่ง คีย์ คำอธิบาย
tap x y จำลองเหตุการณ์การสัมผัสที่พิกัดที่ระบุ

ตัวควบคุมแบบหมุน

DHU รองรับตัวควบคุมแบบหมุน เมื่อเปิดใช้ ระบบจะรองรับการดำเนินการต่อไปนี้

  • การคลิกขึ้น ลง ซ้าย และขวาบน D-pad
  • การหมุนตามเข็มนาฬิกาและทวนเข็มนาฬิกา
  • การหมุนภาพ (5 ขั้นตอนพร้อมกัน)
  • คว่ำตัวควบคุมลงและกลับไปที่ตัวควบคุม

คำสั่งและการเชื่อมโยงแป้นพิมพ์แสดงอยู่ในตารางต่อไปนี้

การคลิกปุ่มกลางของเมาส์ (โดยปกติจะเป็นปุ่มเลื่อน) จะส่งคําสั่ง dpad click และล้อเลื่อนของเมาส์จะส่งคําสั่ง dpad rotate

โปรดทราบว่ารถยนต์ส่วนใหญ่มีหน้าจอสัมผัส รถยนต์บางรุ่นมีเฉพาะตัวควบคุมแบบหมุน และบางรุ่นมีทั้งตัวควบคุมแบบสัมผัสและแบบหมุน รถยนต์ยังสามารถสนับสนุนทัชแพด ซึ่งสามารถใช้สำหรับการเลื่อนแผนที่และการป้อนข้อความ โปรดคำนึงถึงการกำหนดค่าที่แตกต่างกันเหล่านี้เมื่อจำลองระบบเครื่องเสียงของรถยนต์แต่ละรุ่น

คำสั่ง คีย์ คำอธิบาย
dpad {up|down|left|right} ปุ่มลูกศร เลื่อนตัวควบคุมแบบหมุน
dpad {ur|dl|ul|dr} เลื่อนตัวควบคุมแบบหมุน
dpad soft {left|right} Shift+ปุ่มลูกศร กดปุ่มด้านข้างที่มีให้ใช้งานในรีโมตคอนโทรลแบบหมุนบางรุ่น
dpad click Return กดตัวควบคุมแบบหมุน
dpad back Backspace กดปุ่มย้อนกลับที่มีใต้ตัวควบคุมแบบหมุนบางรุ่น
dpad rotate left 1 หมุนตัวควบคุมแบบหมุนทวนเข็มนาฬิกา (ซ้าย)
dpad rotate right 2 หมุนตัวควบคุมแบบหมุนตามเข็มนาฬิกา (ขวา)
dpad flick left Shift+1 หมุนปุ่มหมุนควบคุมทวนเข็มนาฬิกาอย่างรวดเร็ว
dpad flick right Shift+2 หมุนตัวควบคุมแบบหมุนตามเข็มนาฬิกาเร็วๆ
dpad 0-9*#+ ปุ่มตัวเลข

ไมโครโฟน

DHU รองรับการใช้ไมโครโฟนสำหรับการป้อนข้อมูลด้วยเสียงหรือเล่นแทร็กเสียงที่บันทึกไว้ล่วงหน้า ไฟล์เสียงต่อไปนี้สำหรับคำสั่งเสียงทั่วไปจะรวมอยู่ใน DHU เพื่อความสะดวก ไฟล์เสียงเหล่านี้อยู่ในไดเรกทอรี SDK_LOCATION/extras/google/auto/voice/

ชื่อไฟล์ ข้อความ
navhome.wav นำทางกลับบ้าน
navwork.wav นำทางไปที่ทำงาน
navsoh.wav ไปที่โรงอุปรากรซิดนีย์
navgoogle.wav นำทางไปยัง 1600 Amphitheatre Parkway, California, USA
exitnav.wav ออกจากการนำทาง
howlong.wav อีกนานแค่ไหนกว่าจะถึง
showtraffic.wav แสดงการจราจร
showalternateroute.wav แสดงเส้นทางอื่น
pause.wav หยุดเพลงชั่วคราว
nextturn.wav ต้องเลี้ยวอีกครั้งเมื่อไหร่

หากต้องการเรียกใช้ไฟล์ .wav แต่ละไฟล์ในพรอมต์ DHU ให้ใช้คำสั่งต่อไปนี้

mic play /path/to/filename.wav

ตารางต่อไปนี้แสดงคำสั่งอื่นๆ ที่เกี่ยวข้องกับไมโครโฟน

คำสั่ง คีย์ คำอธิบาย
mic begin M เปิดใช้งานไมโครโฟน โดยจำลองการคลิกปุ่มที่พวงมาลัย และรออินพุตจากไมโครโฟนของคอมพิวเตอร์
mic play filename.wav เปิดใช้งานไมโครโฟนและเล่นไฟล์ WAV ที่บันทึกไว้ หมายเหตุ: คุณจะไม่เห็นไฟล์ WAV เล่น แต่ได้ยินเสียงตอบกลับจาก Android Auto
mic repeat ทำซ้ำการบันทึกล่าสุดที่ใช้กับ mic play
mic reject {on|off} เปิดหรือปิดใช้งานการปฏิเสธคําขอใช้ไมโครโฟน เมื่อเปิด คำขอไมโครโฟนทั้งหมดจะถูกปฏิเสธ

เซ็นเซอร์

DHU รองรับการจําลองการเปลี่ยนแปลงข้อมูลเซ็นเซอร์ของยานพาหนะด้วยคําสั่งต่อไปนี้ หากต้องการจำลองข้อมูลเซ็นเซอร์และส่งไปยัง Android Auto คุณต้องเปิดใช้เซ็นเซอร์ที่เกี่ยวข้องด้วยไฟล์การกำหนดค่า .ini ที่ใช้เมื่อเริ่ม DHU

คำสั่ง คำอธิบาย
fuel [percentage] ตั้งค่าระดับน้ำมันเป็นเปอร์เซ็นต์ที่ระบุ หรือ (หากไม่มีการส่งค่า) ให้ปิดใช้งานระดับน้ำมัน
range [km] ตั้งค่าระยะทางเป็นกิโลเมตรที่ระบุ หรือ (หากไม่มีการส่งค่า) ให้ปิดใช้งานข้อมูลระยะทาง
lowfuel [{on|off}] ตั้งค่าเซ็นเซอร์การเตือนน้ำมันเชื้อเพลิงเหลือน้อย หรือ (หากไม่มีการส่งค่า) ให้ปิดใช้งานเซ็นเซอร์
accel [x] [y] [z] ตั้งค่าตัวตรวจวัดความเร่งเป็นค่า x, y และ z ที่ระบุ (m/s^2) หรือ (หากไม่มีการส่งพารามิเตอร์) ให้ยกเลิกการตั้งค่าข้อมูลตัวตรวจวัดความเร่ง ส่ง NAN เพื่อข้ามพารามิเตอร์ที่ไม่บังคับ หากจำเป็น
compass bearing [pitch] [roll] ตั้งค่าเข็มทิศเป็นค่าการทรงตัว การเอียง และการหมุน (องศา) ที่ระบุ ส่ง NAN เพื่อข้ามพารามิเตอร์ที่ไม่บังคับ หากจำเป็น
gyro [x] [y] [z] ตั้งค่าเครื่องวัดการหมุนเป็นความเร็วในการหมุน x, y และ z ที่ระบุ (rad/s) หรือ (หากไม่มีพารามิเตอร์ที่ส่งเข้ามา) ให้ยกเลิกการตั้งค่าข้อมูลเครื่องวัดการหมุน ส่ง NAN เพื่อข้ามพารามิเตอร์ที่ไม่บังคับ หากจำเป็น
location lat long [accuracy] [altitude] [speed] [bearing] ตั้งค่าตำแหน่งเป็นค่าละติจูดและลองจิจูดที่ระบุพร้อมกับความแม่นยำ (ม.) ระดับความสูง (ม.) ความเร็ว (ม./วินาที) และทิศทาง (องศา) (ไม่บังคับ) ส่ง NAN เพื่อข้ามพารามิเตอร์ที่ไม่บังคับ หากจำเป็น
odometer km [current_trip_km] กําหนดเครื่องวัดระยะทางเป็นกิโลเมตรที่ระบุ พร้อมกับค่าหน่วยกิโลเมตรของการเดินทางปัจจุบัน (ไม่บังคับ)
speed [speed] ตั้งค่าความเร็วของยานพาหนะเป็นค่าที่ระบุ (เมตร/วินาที) หรือ (โดยไม่ส่งค่าใดๆ) ปิดใช้งานเซ็นเซอร์
tollcard {insert|remove} ใส่หรือนำบัตรผ่านประตูออก
gps_satellite number_in_use [[azimuth] [elevation] [prn] [snr] [used_in_fix]] ตั้งค่าเซ็นเซอร์ดาวเทียม GPS เป็นตัวเลขที่ระบุในค่าการใช้งาน พร้อมกับรายการแนวราบ (องศาภายในช่วง 0 ถึง 360) ระดับความสูง (องศาภายในช่วง 0 ถึง 90) PRN (สัญญาณรบกวนแบบสุ่มจำลอง) SNR (dB) และที่ใช้ในการแก้ไข (true หรือ false)
parking_brake engaged ตั้งค่าเซ็นเซอร์เบรกจอดรถเป็น true หรือ false
gear gear_value ตั้งค่าเซ็นเซอร์เกียร์เป็นค่าที่ระบุ (เช่น 0 สำหรับเกียร์ว่าง 100 สำหรับเกียร์เดินหน้า 101 สำหรับเกียร์จอด และ 102 สำหรับเกียร์ถอยหลัง)

โหมดกลางวันและกลางคืน

DHU รองรับการจําลองการเปลี่ยนระหว่างโหมดกลางวันและกลางคืนด้วยคําสั่งและการเชื่อมโยงแป้นต่อไปนี้

คำสั่ง คีย์ คำอธิบาย
day Shift+N เปิดใช้งานโหมดกลางวัน - สว่างและแสดงสีครบ
night Ctrl+N เปิดใช้งานโหมดกลางคืน - ความสว่างต่ำและคอนทราสต์สูง
daynight
nightday
N สลับโหมดกลางวันหรือกลางคืน

การจัดการโฟกัส

DHU รองรับการจําลองว่า Android Auto โฟกัสที่หน้าจอส่วนกลางหรือไม่โดยใช้คําสั่งต่อไปนี้

คำสั่ง คำอธิบาย
focus video {on|off|toggle} เปิดหรือปิดใช้งานโฟกัสวิดีโอในจอภาพหลัก การปิดโฟกัสวิดีโอจะจำลองให้จอภาพส่วนกลางเข้าสู่โหมดเนทีฟ
focus audio {on|off|toggle} เปิดหรือปิดใช้งานโหมดโฟกัสเสียงบนจอภาพหลัก การปิดโฟกัสเสียงจะจำลองให้เหมือนว่าจอแสดงผลส่วนกลางเล่นแหล่งที่มาของเสียงของตนเอง
focus nav {on|off|toggle} เปิดหรือปิดใช้งานโฟกัสการนําทางในจอภาพหลัก การปิดโฟกัสการนำทางจะจำลองเครื่องเล่นวิทยุที่เรียกใช้ระบบนำทางของตนเอง

ข้อจำกัดและสถานะการขับขี่

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

คำสั่ง คีย์ คำอธิบาย
restrict none ใช้ ปิดใช้ข้อจํากัดทั้งหมด
restrict all Shift+U เปิดใช้ข้อจำกัดทั้งหมด เช่น เพื่อจำลองการขับรถ

แผงหน้าปัด

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

หน้าต่างแผงหน้าปัดของ DHU ที่แสดงทั้งข้อมูลการนำทางและสถานะการโทร

ซึ่งสามารถเปิดใช้ได้โดยใช้รายการ instrumentcluster ในส่วน [general] ของไฟล์การกําหนดค่า หรือใช้รายการ navcluster หรือ phoneclusterเพื่อควบคุมแต่ละฟีเจอร์แยกกัน

[general]
...
instrumentcluster = true

จอแผงหน้าปัด

ยานพาหนะบางคันมีจอแสดงผลคลัสเตอร์ที่แสดงข้อมูลภาพอย่างละเอียด เช่น ไทล์แผนที่ ตั้งแต่ DHU เวอร์ชัน 2.1 เป็นต้นไป (ปัจจุบันมีให้บริการผ่านช่องทางอัปเดต Android Studio รุ่นเบต้า) คุณจะจําลองจอแสดงผลดังกล่าวในเครื่องพัฒนาซอฟต์แวร์ได้

ซึ่งทำได้โดยใช้ไฟล์การกำหนดค่าที่มีส่วน [display] ของคลัสเตอร์ ส่วน [display] รองรับตัวเลือกการกำหนดค่าวิดีโอเดียวกันกับการแสดงผลหลักที่กำหนดค่าไว้ในส่วน [general] ของไฟล์

รูปที่ 3 หน้าจอหลักเมื่อเรียกใช้ DHU ที่มีจอแสดงคลัสเตอร์รอง
รูปที่ 4 หน้าจอแผงหน้าปัดเมื่อเรียกใช้ DHU ด้วยจอแสดงผลแผงหน้าปัดรอง
...

# The display name following the colon can be whatever you like.
[display:cluster]
# Setting the displaytype as cluster is what lets the DHU know how to handle it.
displaytype = cluster
resolution = 800x480
dpi = 160
...

คุณสามารถเพิ่มการกําหนดค่านี้ลงในไฟล์ .ini ที่มีอยู่โดยตรง หรือจะใช้ซ้ำโดยใส่ไว้ในไฟล์แยกต่างหากและส่งไฟล์การกําหนดค่าหลายไฟล์เมื่อเปิด DHU ก็ได้ เมื่อใช้ไฟล์การกําหนดค่าหลายไฟล์ คําจํากัดความของค่าหนึ่งๆ ที่ระบุในภายหลังจะลบล้างคําจํากัดความก่อนหน้า

# Launch your landscape configuration with your cluster display configuration
./desktop-head-unit -c landscape.ini -c cluster.ini

# Launch the portait configuration with the same cluster display configuration
./desktop-head-unit -c portrait.ini -c cluster.ini

สถานะการเล่นสื่อ

DHU รองรับการแสดงข้อมูลเพิ่มเติมเพื่อแสดงสถานะการเล่นสื่อ เช่น แทร็กที่กำลังเล่น

หน้าต่างสถานะการเล่นสื่อของ DHU ที่แสดงข้อมูลการเล่น

ซึ่งเปิดใช้ได้โดยใช้รายการ playbackstatus ในส่วน [general]

[general]
...
playbackstatus = true

รหัส

DHU มีชุดรหัสคีย์เริ่มต้นที่จำลองชุดปุ่มลัดที่ใช้กันโดยทั่วไปในยานพาหนะ ตัวอย่างเช่น คุณสามารถเรียกใช้รหัสแป้น home ในพรอมต์ DHU ดังนี้

keycode home

ตารางต่อไปนี้แสดงคีย์โค้ดอื่นๆ ที่มี

Keycode คำอธิบาย
home ไปที่หน้าจอหลัก
back ย้อนกลับ
call
endcall
โทรออกหรือวางสาย
search เรียกใช้การค้นหา
media_play_pause
media_play
media_pause
เล่นหรือหยุดสื่อชั่วคราว
media_next
media_previous
ไปยังแทร็กสื่อถัดไปหรือก่อนหน้า
media ไปที่แอปสื่อเริ่มต้น
navigation ไปที่แอปการนำทางเริ่มต้น
tel ไปที่แอปโทรศัพท์เริ่มต้น

กำหนดค่า DHU

โดย DHU จะรองรับไฟล์การกำหนดค่า .ini เพื่อเปลี่ยนโหมดป้อนข้อมูลระหว่างตัวควบคุมระบบสัมผัสกับตัวควบคุมแบบหมุน และเพื่อตั้งค่าอัตราเฟรม ความละเอียด และ DPI ที่หน่วยโฆษณาเครื่องเสียงส่งคำขอจากโทรศัพท์

ตำแหน่งเริ่มต้นสำหรับไฟล์การกำหนดค่าคือ ~/.android/headunit.ini หากต้องการเปลี่ยนการกำหนดค่าของส่วนหัวในระบบ คุณสามารถแก้ไขไฟล์นี้ได้

นอกจากนี้ คุณยังระบุไฟล์การกําหนดค่าที่จะโหลดได้โดยใช้แฟล็ก -c ดังนี้

./desktop-head-unit -c /path/to/config.ini

ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างการกำหนดค่า

[general]
touch = true
touchpad = false
controller = false
instrumentcluster = false
resolution = 800x480
dpi = 160
framerate = 30
fueltypes = unleaded,electric,hydrogen
evconnectors = supercharger

ตัวอย่างไฟล์การกำหนดค่าที่แสดงการตั้งค่าระบบเครื่องเสียงแบบต่างๆ ที่คุณทดสอบได้จะอยู่ในโฟลเดอร์ SDK_LOCATION/extras/google/auto/config/ สำหรับกรณีการใช้งานขั้นสูง โปรดดูการตั้งค่าที่รองรับต่อไปนี้

การกำหนดค่าอินพุต

ตารางต่อไปนี้แสดงตัวเลือกการกำหนดค่าอินพุต

ชื่อ ค่าเริ่มต้น ประเภท คำอธิบาย
inputmode default สตริง กําหนดโหมดการป้อนข้อมูล ตัวเลือก touch, rotary และ hybrid จะเปิดใช้งานและปิดใช้งานหน้าจอสัมผัสและการรองรับแบบหมุน รวมทั้งตั้งรหัสคีย์เริ่มต้นตามความเหมาะสม default ขึ้นอยู่กับตัวเลือก touch และ controller
controller false บูลีน เปิดใช้อินพุตตัวควบคุมแบบหมุน ละเว้นเว้นแต่ inputmode จะเป็น default
touch true บูลีน เปิดใช้งานหน้าจอสัมผัส ระบบจะละเว้น เว้นแต่ inputmode จะเท่ากับ default
touchpad false บูลีน เปิดใช้ทัชแพด
touchpadnavigation false บูลีน เปิดใช้ทัชแพดเพื่อไปยังส่วนต่างๆ ของ UI
touchpadtapasselect false บูลีน เมื่อเป็น "จริง" การแตะทัชแพดจะเป็นเหตุการณ์การเลือก
touchpaduiabsolute false บูลีน เมื่อ touchpadnavigation เป็น true ให้ตั้งค่าว่าควรถือว่าการแตะเป็นค่าสัมบูรณ์หรือเป็นท่าทางสัมผัส

การกำหนดค่าวิดีโอ

Android Auto รองรับความละเอียดวิดีโอ 3 แบบ ได้แก่

  • 480p (800x480 ซึ่งเป็นค่าเริ่มต้น)
  • 720p (1280x720)
  • 1080p (1920x1080)

หากต้องการรองรับสัดส่วนภาพอื่นๆ ยูนิตส่วนหัวสามารถระบุระยะขอบสำหรับภาพที่มีแถบดำด้านบนและด้านล่าง (Letterbox) ตามความจำเป็น เช่น หากคุณต้องการหน้าจอขนาด 1000x600 ให้ตั้งความละเอียดเป็น 720p (1280x720) และ marginwidth เป็น 280 และ marginheight เป็น 120 ซึ่งจะมีผลเป็นการเพิ่มระยะขอบ 140 พิกเซลที่ขอบซ้ายและขวา และระยะขอบ 60 พิกเซลที่ด้านบนและด้านล่าง

ตัวอย่างการกำหนดค่าต่อไปนี้จำลองหน้าจอขนาด 6 นิ้วทั่วไป (750x450)

[general]
...
resolution = 800x480
marginwidth = 50
marginheight = 30

และตัวอย่างการกำหนดค่าต่อไปนี้จะจําลองหน้าจอกว้างมาก

[general]
...
resolution = 1280x720
marginwidth = 0
marginheight = 220

ตารางต่อไปนี้แสดงตัวเลือกการกำหนดค่าวิดีโออื่นๆ

ชื่อ ค่าเริ่มต้น ประเภท คำอธิบาย
resolution 800x480 สตริง รายการใดรายการหนึ่งต่อไปนี้ 800x480, 1280x720, 1920x1080
dpi 160 จำนวนเต็ม
normalizedpi false บูลีน เมื่อ true ให้ลดขนาดหน้าต่าง DHU เพื่อรองรับค่า DPI ที่มากขึ้น เมื่อ false ค่า DPI ที่สูงขึ้นจะทำให้หน้าต่างมีขนาดใหญ่ขึ้น ซึ่งไม่ได้จำลองการแสดงผลจริง แต่ช่วยในการตรวจสอบเนื้อหาภาพ
realdpi 160 จำนวนเต็ม ใช้ในการกำหนดค่าวิดีโอ
framerate 30 จำนวนเต็ม ใช้ในการกำหนดค่าวิดีโอ
marginheight 0 จำนวนเต็ม ใช้ในการกำหนดค่าวิดีโอ
marginwidth 0 จำนวนเต็ม ใช้ในการกําหนดค่าวิดีโอ
margins 0,0,0,0 สตริง ใช้ในการกำหนดค่าวิดีโอ ลบล้าง marginwidth และ marginheight หากมี รูปแบบคือ บน ล่าง ซ้าย ขวา
contentinsets 0,0,0,0 สตริง ใช้ในการกําหนดค่าวิดีโอ รูปแบบคือ บน ล่าง ซ้าย ขวา
stablecontentinsets 0,0,0,0 สตริง ใช้ในการกําหนดค่าวิดีโอ ค่าเริ่มต้นคือ contentinsets รูปแบบคือ บน ล่าง ซ้าย ขวา
cropmargins false บูลีน หากระบุ margins, marginheight หรือ marginwidth ค่า true สำหรับการตั้งค่านี้จะนําขอบเหล่านั้นออกจากวิดีโอที่แสดง ข้อมูลนี้แสดงถึงสิ่งที่ผู้ใช้ปลายทางเห็นได้ใกล้เคียงยิ่งขึ้น
pixelaspectratio 1.0 ล่องลอย ใช้ในการกําหนดค่าวิดีโอ

การกำหนดค่าเซ็นเซอร์

หากต้องการจำลองข้อมูลเซ็นเซอร์และส่งไปยัง Android Auto ต้องเปิดใช้เซ็นเซอร์ที่เกี่ยวข้องโดยใช้ตัวเลือกต่อไปนี้ หากไม่ได้เปิดใช้เซ็นเซอร์ ระบบจะไม่สนใจข้อมูลที่ส่งสำหรับเซ็นเซอร์นั้นโดยใช้คำสั่ง DHU โดยต้องใส่การกำหนดค่านี้ในส่วน [sensors] ไม่ใช่ในส่วน [general] ที่ใช้สำหรับการกำหนดค่าอื่นๆ ส่วนใหญ่

[general]
touch = true
...

[sensors]
location = true
fuel = true
...
ชื่อ ค่าเริ่มต้น ประเภท คำอธิบาย
accelerometer false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์ตัวตรวจวัดความเร่ง
compass false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์เข็มทิศ
driving_status false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์สถานะการขับรถ
fuel false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์น้ำมัน
gyroscope false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์ไจโรสโคป
location false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์ตำแหน่งของรถ
night_mode false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์โหมดกลางคืน
odometer false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์เครื่องวัดระยะทาง
speed false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์ความเร็ว
toll_card false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์บัตรผ่านประตู
gps_satellite false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์ดาวเทียม GPS
parking_brake false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์เบรกมือ
gear false บูลีน เปิดใช้ข้อมูลเซ็นเซอร์เกียร์

ตัวเลือกการกําหนดค่าอื่นๆ

ตารางต่อไปนี้แสดงตัวเลือกการกําหนดค่าอื่นๆ

ชื่อ ค่าเริ่มต้น ประเภท คำอธิบาย
instrumentcluster false บูลีน เปิดใช้แผงหน้าปัด เพิ่มหน้าต่างไปยัง UI เพื่อแสดงการนำทางและสถานะโทรศัพท์
navcluster false บูลีน เปิดใช้งานแผงหน้าปัด เพิ่มหน้าต่างลงใน UI เพื่อแสดงสถานะการนำทาง
phonecluster false บูลีน เปิดใช้งานแผงหน้าปัด เพิ่มหน้าต่างไปยัง UI เพื่อแสดงสถานะโทรศัพท์
playbackstatus false บูลีน เปิดใช้สถานะการเล่น เพิ่มหน้าต่างลงใน UI เพื่อแสดงข้อความสถานะการเล่น
driverposition left สตริง ข้อใดข้อหนึ่ง: left, center หรือ right
windowleft จำนวนเต็ม กำหนดตำแหน่งด้านซ้ายของหน้าต่างหลัก
windowtop จำนวนเต็ม กำหนดตำแหน่งด้านบนของหน้าต่างหลัก
fueltypes unleaded เครื่องสาย รายการต่อไปนี้อย่างน้อย 1 รายการในรายการที่คั่นด้วยคอมมา
  • unleaded
  • leaded
  • diesel-1
  • diesel-2
  • biodiesel
  • e85
  • lpg
  • cng
  • lng
  • hydrogen
  • electric
  • other
  • unknown
evconnectors เครื่องสาย รายการต่อไปนี้อย่างน้อย 0 รายการในรายการที่คั่นด้วยคอมมา
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
ตั้งค่าเฉพาะในกรณีที่ fueltypes มี electric

แก้ปัญหา

บางครั้ง DHU จะแสดงหน้าจอว่างเปล่าเมื่อเชื่อมต่อเป็นครั้งแรก คุณแก้ปัญหานี้ได้โดยทำดังนี้

  1. ปิด DHU
  2. ทำตามขั้นตอนที่ 5 ที่อธิบายไว้ในเรียกใช้ DHU เพื่อหยุดและรีสตาร์ทเซิร์ฟเวอร์ Head Unit
  3. เริ่ม DHU อีกครั้ง
  4. ให้สิทธิ์เพิ่มเติมที่ขอในหน้าจอโทรศัพท์ DHU อาจปิดอีกครั้ง
  5. รีสตาร์ท DHU หากจำเป็น