เครื่องเสียงเดสก์ท็อป (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 แล้วไปที่แท็บเครื่องมือ SDK จากนั้นดาวน์โหลดแพ็กเกจ Android Auto โปรแกรมจำลองจอภาพส่วนกลางบนเดสก์ท็อป
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
เชื่อมต่อโดยใช้โหมดอุปกรณ์เสริม
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
- เปิดใช้โหมดนักพัฒนาซอฟต์แวร์ Android Auto หากยังไม่ได้เปิดใช้งาน
หากเซิร์ฟเวอร์ของจอภาพส่วนกลางไม่ทำงานอยู่ ให้เปิดเมนูรายการเพิ่มเติมแล้วเลือกเริ่มเซิร์ฟเวอร์ของจอภาพส่วนกลาง ดังที่แสดงในรูปที่ 1
ในอุปกรณ์ บริการที่ทำงานอยู่เบื้องหน้าจะปรากฏขึ้นในพื้นที่การแจ้งเตือนซึ่งบ่งบอกว่าเซิร์ฟเวอร์ทำงานอยู่ ดังที่แสดงในรูปที่ 2
ในแอป Android Auto ให้แตะรถที่เชื่อมต่อก่อนหน้านี้ใกล้กับด้านบนของการตั้งค่า และตรวจสอบว่าได้เปิดใช้เพิ่มรถคันใหม่ไปยัง Android Auto แล้ว
เชื่อมต่ออุปกรณ์เคลื่อนที่กับเครื่องสำหรับพัฒนาโดยใช้ USB
ตรวจสอบว่าอุปกรณ์เคลื่อนที่ปลดล็อกหน้าจออยู่เพื่อให้เปิด DHU ได้
ในเครื่องสำหรับพัฒนา ให้เรียกใช้คำสั่ง
adb
ต่อไปนี้เพื่อส่งต่อการเชื่อมต่อซ็อกเก็ตจากพอร์ต 5277 ของเครื่องสำหรับพัฒนาไปยังหมายเลขพอร์ตเดียวกันในอุปกรณ์ Android การกำหนดค่านี้ช่วยให้ DHU เชื่อมต่อกับเซิร์ฟเวอร์ระบบเครื่องเสียงที่ทำงานบนอุปกรณ์เคลื่อนที่ผ่านซ็อกเก็ต TCPadb 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/auto
desktop-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 ด้วยเมาส์ หากต้องการจําลองส่วนหัวที่ใช้ตัวควบคุมแบบหมุนสําหรับอินพุต คุณสามารถใช้ 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 รองรับการเลียนแบบแผงหน้าปัด โดยปกติแล้วคลัสเตอร์นี้จะอยู่หลังพวงมาลัย และจะแสดงข้อมูลพื้นฐานระหว่างการนำทางเกี่ยวกับการเลี้ยวถัดไป เช่น ชื่อถนนถัดไปหรือลูกศรเลี้ยว ระยะทาง หรือเวลา อีกทั้งยังแสดงข้อมูลเกี่ยวกับการโทรที่ดำเนินอยู่อีกด้วย
ซึ่งสามารถเปิดใช้ได้โดยใช้รายการ 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
รหัส
DHU มีชุดรหัสคีย์เริ่มต้นที่จำลองชุดปุ่มลัดที่ใช้กันโดยทั่วไปในยานพาหนะ ตัวอย่างเช่น คุณสามารถเรียกใช้รหัสแป้น
home
ในพรอมต์ DHU ดังนี้
keycode home
ตารางต่อไปนี้แสดงคีย์โค้ดอื่นๆ ที่มี
Keycode | คำอธิบาย |
---|---|
home |
ไปที่หน้าจอหลัก |
back |
ย้อนกลับ |
call |
โทรออกหรือวางสาย |
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 รายการในรายการที่คั่นด้วยคอมมา
|
evconnectors |
|
เครื่องสาย | รายการต่อไปนี้อย่างน้อย 0 รายการในรายการที่คั่นด้วยคอมมา
fueltypes มี electric
|
แก้ปัญหา
บางครั้ง DHU จะแสดงหน้าจอว่างเปล่าเมื่อเชื่อมต่อเป็นครั้งแรก คุณแก้ปัญหานี้ได้โดยทำดังนี้
- ปิด DHU
- ทำตามขั้นตอนที่ 5 ที่อธิบายไว้ในเรียกใช้ DHU เพื่อหยุดและรีสตาร์ทเซิร์ฟเวอร์ Head Unit
- เริ่ม DHU อีกครั้ง
- ให้สิทธิ์เพิ่มเติมที่ขอในหน้าจอโทรศัพท์ DHU อาจปิดอีกครั้ง
- รีสตาร์ท DHU หากจำเป็น