Desktop Head Unit (DHU) ช่วยให้เครื่องพัฒนาของคุณจำลองเครื่องเสียง Android Auto เพื่อให้คุณเรียกใช้และทดสอบแอป Android Auto ได้ DHU ทำงานในระบบ Windows, macOS และ Linux
หลังจากติดตั้ง DHU แล้ว คุณจะทดสอบแอป Android Auto ได้โดย เชื่อมต่ออุปกรณ์เคลื่อนที่กับ DHU โดยใช้กลไกการเชื่อมต่อที่รองรับ ตามที่อธิบายไว้ในเรียกใช้ DHU
หากต้องการรายงานข้อบกพร่องหรือขอฟีเจอร์ที่เกี่ยวข้องกับ DHU ให้ใช้เครื่องมือติดตามปัญหา
ติดตั้ง DHU
วิธีติดตั้ง DHU ในเครื่องสำหรับการพัฒนาซอฟต์แวร์
- เปิดใช้โหมดนักพัฒนาซอฟต์แวร์ในอุปกรณ์เคลื่อนที่ที่ใช้ Android 9 (API ระดับ 28) ขึ้นไป ตามที่อธิบายไว้ในกำหนดค่าตัวเลือกสำหรับนักพัฒนาแอปในอุปกรณ์
- คอมไพล์และติดตั้งแอปในอุปกรณ์
- ติดตั้ง Android Auto ในอุปกรณ์ หากติดตั้ง Android Auto ไว้แล้ว โปรดตรวจสอบว่าคุณใช้เวอร์ชันล่าสุด
ใน Android Studio ให้เปิด SDK Manager แล้วไปที่แท็บ SDK Tools จากนั้นดาวน์โหลดแพ็กเกจ Android Auto Desktop Head Unit Emulator
เครื่องมือจัดการ SDK ที่แสดง DHU 2.0 ระบบจะติดตั้ง DHU ในไดเรกทอรี
SDK_LOCATION/extras/google/auto/ในระบบ 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
- เปิดใช้โหมดนักพัฒนาแอป Android Auto หากยังไม่ได้เปิด
หากเซิร์ฟเวอร์ของยูนิตหลักยังไม่ได้ทำงาน ให้เปิดเมนูที่ล้นและ เลือกเริ่มเซิร์ฟเวอร์ของยูนิตหลัก ดังที่แสดงในรูปที่ 1
ในอุปกรณ์ บริการที่ทำงานอยู่เบื้องหน้าจะปรากฏในพื้นที่การแจ้งเตือนซึ่ง ระบุว่าเซิร์ฟเวอร์กำลังทำงานอยู่ ดังที่แสดงในรูปที่ 2
รูปที่ 1 เมนูตามบริบทที่มีตัวเลือกสำหรับนักพัฒนาแอป
รูปที่ 2 การแจ้งเตือนว่าเซิร์ฟเวอร์ของชุดอุปกรณ์มัลติมีเดียกำลังทำงาน
ในแอป Android Auto ให้แตะรถที่เชื่อมต่อก่อนหน้านี้ที่ด้านบนของการตั้งค่า แล้วตรวจสอบว่าได้เปิดใช้เพิ่มรถคันใหม่ไปยัง Android Auto แล้ว
เชื่อมต่ออุปกรณ์เคลื่อนที่กับคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์โดยใช้ USB
ตรวจสอบว่าหน้าจอของอุปกรณ์เคลื่อนที่ไม่ได้ล็อกอยู่เพื่อให้เปิด DHU ได้
ในคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ ให้เรียกใช้
adbคำสั่งต่อไปนี้เพื่อส่งต่อ การเชื่อมต่อซ็อกเก็ตจากพอร์ต 5277 ของคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์ไปยังพอร์ตหมายเลขเดียวกัน ในอุปกรณ์เคลื่อนที่ การกำหนดค่านี้ช่วยให้ DHU เชื่อมต่อกับเซิร์ฟเวอร์เฮดยูนิตที่ทำงานบนอุปกรณ์เคลื่อนที่ผ่านซ็อกเก็ต TCP ได้adb forward tcp:5277 tcp:5277เริ่ม DHU โดยเรียกใช้คำสั่ง
desktop-head-unit.exeใน Windows หรือ./desktop-head-unitใน macOS หรือ Linux จากไดเรกทอรีSDK_LOCATION/extras/google/auto/cd SDK_LOCATION/extras/google/autodesktop-head-unit.exe # Windows./desktop-head-unit # macOS or Linux
- หากนี่เป็นครั้งแรกที่คุณเชื่อมต่ออุปกรณ์เคลื่อนที่กับ 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] |
แสดงชุดคำสั่งทั้งหมด หากระบุชื่อคำสั่ง ให้แสดงความช่วยเหลือสำหรับคำสั่งนั้น | |
quitexit |
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 | เปิดใช้งานโหมดกลางคืน - ความสว่างต่ำ คอนทราสต์สูง |
daynightnightday |
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 รองรับการจำลองคลัสเตอร์เครื่องมือ โดยปกติแล้วแผงหน้าปัดจะอยู่ด้านหลัง พวงมาลัย และจะแสดงข้อมูลพื้นฐานระหว่างการนำทางเกี่ยวกับ การเลี้ยวถัดไป เช่น ชื่อถนนถัดไปหรือลูกศรเลี้ยว ระยะทาง หรือ เวลา รวมถึงแสดงข้อมูลเกี่ยวกับการโทรที่กำลังดำเนินอยู่ด้วย
คุณเปิดใช้ได้โดยใช้รายการ instrumentcluster ในส่วน [general]
ของไฟล์การกำหนดค่า หรือใช้รายการ navcluster หรือ phonecluster
เพื่อควบคุมแต่ละฟีเจอร์แยกกัน
[general]
...
instrumentcluster = true
จอแผงหน้าปัด
รถยนต์บางรุ่นมีจอแผงหน้าปัดที่แสดงข้อมูลภาพที่สมบูรณ์ได้ เช่น ไทล์แผนที่ ตั้งแต่ DHU เวอร์ชัน 2.1 เป็นต้นไป (ปัจจุบันพร้อมใช้งานโดยใช้ช่องอัปเดต Android Studio เวอร์ชันเบต้า) คุณจะจำลองจอแสดงผลดังกล่าวในเครื่องที่ใช้พัฒนาได้
ซึ่งทำได้โดยใช้ไฟล์การกำหนดค่าที่มีส่วน[display]คลัสเตอร์
ส่วน [display] รองรับตัวเลือกการกำหนดค่าวิดีโอเดียวกันกับ
จอแสดงผลหลักที่กำหนดค่าไว้ในส่วน [general] ของไฟล์
...
# 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 รองรับการแสดงข้อมูลเพิ่มเติมเพื่อแสดงสถานะการเล่นสื่อ เช่น แทร็กที่กำลังเล่น
คุณเปิดใช้ได้โดยใช้รายการ playbackstatus ในส่วน [general]
[general]
...
playbackstatus = true
Keycode
DHU มีชุดรหัสแป้นเริ่มต้นที่จำลองชุดปุ่มลัด
ที่มักมีในยานพาหนะ ตัวอย่างเช่น สามารถทริกเกอร์รหัสคีย์ home
ในพรอมต์ DHU ได้ดังนี้
keycode homeตารางต่อไปนี้แสดงรหัสคีย์อื่นๆ ที่ใช้ได้
| Keycode | คำอธิบาย |
|---|---|
home |
ไปที่หน้าจอหลัก |
back |
ย้อนกลับ |
callendcall
|
โทรออกหรือวางสาย |
search |
ทริกเกอร์การค้นหา |
media_play_pausemedia_playmedia_pause |
เล่นหรือหยุดสื่อชั่วคราว |
media_nextmedia_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 รายการในรายการที่คั่นด้วยคอมมา
|
evconnectors |
|
สตริง | รายการต่อไปนี้อย่างน้อย 1 รายการในรายการที่คั่นด้วยคอมมา
fueltypes มี electric
|
แก้ปัญหา
บางครั้ง DHU จะแสดงหน้าจอว่างเปล่าเมื่อเชื่อมต่อเป็นครั้งแรก คุณสามารถหลีกเลี่ยงปัญหานี้ได้โดยทำดังนี้
- ปิด DHU
- ทำตามขั้นตอนที่ 5 ที่อธิบายไว้ในหัวข้อเรียกใช้ DHU เพื่อหยุดและรีสตาร์ทเซิร์ฟเวอร์ Head Unit
- เริ่ม DHU อีกครั้ง
- ให้สิทธิ์เพิ่มเติมที่ขอในหน้าจอโทรศัพท์ DHU อาจปิดเครื่องอีกครั้ง
- รีสตาร์ท DHU หากจำเป็น