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

Desktop Head Unit (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 Manager แล้วไปที่แท็บ SDK Tools จากนั้นดาวน์โหลดแพ็กเกจ Android Auto Desktop Head Unit Emulator

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

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

  5. ในระบบ 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 Tunneling

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

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

./desktop-head-unit --usb

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

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

เชื่อมต่อโดยใช้การทำอุโมงค์ ADB

วิธีนี้ต้องตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์ยูนิตหลักของ 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 ของคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ไปยังพอร์ตหมายเลขเดียวกัน ในอุปกรณ์เคลื่อนที่ การกำหนดค่านี้ช่วยให้ 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 ที่ทำงานในเครื่องพัฒนา
DHU ทำงานในเครื่องที่ใช้พัฒนา
  1. หากนี่เป็นครั้งแรกที่คุณเชื่อมต่ออุปกรณ์เคลื่อนที่กับ DHU ให้ตรวจสอบหน้าจอของอุปกรณ์เคลื่อนที่เพื่อยอมรับข้อกำหนดในการให้บริการและปรับ การตั้งค่าสิทธิ์ตามต้องการ

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

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

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

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

โดยค่าเริ่มต้น DHU จะจำลองเครื่องเสียงที่รองรับ Android Auto ด้วย อินเทอร์เฟซผู้ใช้แบบหน้าจอสัมผัส จำลองการสัมผัสของผู้ใช้โดยคลิก DHU ด้วยเมาส์ หากต้องการจำลองยูนิตหลักที่ใช้ตัวควบคุมแบบหมุนสำหรับอินพุต คุณสามารถใช้แฟล็ก -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 อย่าง

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

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

ปุ่มหมุนควบคุม

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

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

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

ล้อเลื่อนบนเมาส์จะส่งคำสั่ง dpad rotate และการคลิกปุ่มกลางของเมาส์ ซึ่งโดยปกติคือล้อเลื่อน จะส่งคำสั่ง dpad click

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

คำสั่ง คีย์ คำอธิบาย
dpad {up|down|left|right} ปุ่มลูกศร หมุนปุ่มหมุนควบคุม
dpad {ur|dl|ul|dr} หมุนปุ่มหมุนควบคุม
dpad soft {left|right} Shift + ปุ่มลูกศร กดปุ่มด้านข้างที่มีในตัวควบคุมแบบหมุนบางรุ่น
dpad click กลับ กดปุ่มหมุนควบคุม
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 ที่ระบุ (ม./วินาที^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} เปิดหรือปิดใช้งานโฟกัสวิดีโอบนยูนิตหลัก การปิดโฟกัสวิดีโอ จะจำลองการซ่อน Android Auto ของเครื่องเสียง
focus audio {on|off|toggle} เปิดหรือปิดใช้งานโฟกัสเสียงในยูนิตหลัก การปิดโฟกัสเสียง จะจำลองยูนิตหลักที่เล่นแหล่งที่มาของเสียงของตัวเอง
focus nav {on|off|toggle} เปิดหรือปิดใช้งานโฟกัสการนำทางบนยูนิตหลัก การปิด โฟกัสการนำทางจะจำลองเครื่องเล่นวิทยุที่เรียกใช้ระบบนำทางของตัวเอง

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

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

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

แผงหน้าปัด

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

หน้าต่างแผงหน้าปัดของ 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 ที่แสดงข้อมูลการเล่น
หน้าต่างสถานะการเล่นสื่อของ DHU ที่แสดงข้อมูลการเล่น

คุณเปิดใช้ได้โดยใช้รายการ playbackstatus ในส่วน [general]

[general]
...
playbackstatus = true

Keycode

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)

หากต้องการรองรับสัดส่วนภาพอื่นๆ ชุดอุปกรณ์หลักสามารถระบุขอบเพื่อแสดงภาพแบบจอกว้าง (แบบเสา) ได้ตามต้องการ เช่น หากต้องการหน้าจอขนาด 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 เครื่องสาย รายการต่อไปนี้อย่างน้อย 1 รายการในรายการที่คั่นด้วยคอมมา
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
ตั้งค่าเฉพาะในกรณีที่ fueltypes มี electric

แก้ปัญหา

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

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