واحد هد دسکتاپ (DHU) به دستگاه توسعهدهنده شما اجازه میدهد تا یک واحد هد اندروید اتو را شبیهسازی کند تا بتوانید برنامههای اندروید اتو را اجرا و آزمایش کنید. DHU روی سیستمهای ویندوز، macOS و لینوکس اجرا میشود.
پس از نصب DHU، میتوانید برنامههای Android Auto خود را با اتصال دستگاه تلفن همراه خود به آن با استفاده از یکی از مکانیسمهای اتصال پشتیبانیشده که در بخش «اجرای DHU» توضیح داده شده است، آزمایش کنید.
برای گزارش اشکالات یا درخواست ویژگیهای مربوط به DHU، از ردیاب مشکلات استفاده کنید.
DHU را نصب کنید
برای نصب DHU روی دستگاه توسعه خود:
- حالت توسعهدهنده را در دستگاه همراه دارای اندروید ۹ (سطح API 28) یا بالاتر، همانطور که در پیکربندی گزینههای توسعهدهنده روی دستگاه توضیح داده شده است، فعال کنید.
- برنامه خود را روی دستگاه کامپایل و نصب کنید.
- اندروید اتو را روی دستگاه نصب کنید. اگر اندروید اتو از قبل نصب شده است، مطمئن شوید که از آخرین نسخه آن استفاده میکنید.
در اندروید استودیو، SDK Manager را باز کنید و به تب SDK Tools بروید، سپس بسته Android Auto Desktop Head Unit Emulator را دانلود کنید.

مدیر SDK، DHU 2.0 را نشان میدهد. DHU در دایرکتوری
SDK_LOCATION /extras/google/auto/نصب شده است.در سیستمهای لینوکس یا macOS، دستور زیر را در آن دایرکتوری اجرا کنید تا فایل باینری DHU قابل اجرا شود:
chmod +x ./desktop-head-unitمراحل اضافی برای لینوکس
اگر DHU نسخه ۲.x را روی سیستم لینوکس اجرا میکنید، باید کتابخانههای اضافی را نصب کنید. فایل باینری DHU به GLIBC نسخه ۲.۳۲ یا بالاتر بستگی دارد. میتوانید نسخه GLIBC سیستم خود را با اجرای این دستور بررسی کنید:
ldd --version اگر نسخه پایینتر از ۲.۳۲ است، GLIBC به ۲.۳۲ یا بالاتر بهروزرسانی کنید، که ممکن است مستلزم ارتقاء سیستم عامل به نسخهای باشد که با GLIBC ۲.۳۲ یا بالاتر سازگار باشد.
همچنین باید کتابخانههای libc++1 و libc++abi1 را نصب کنید. مراحل نصب بسته به توزیع لینوکس شما متفاوت است. به عنوان مثال، در توزیعهای لینوکس مشتق شده از Debian، میتوانید کتابخانهها را با این دستور نصب کنید:
sudo apt-get install libc++1 libc++abi1نسخههای پیشانتشار DHU را نصب کنید
برای دسترسی به نسخههای پیشانتشار DHU، میتوانید از یک نسخه پیشنمایش اندروید استودیو استفاده کنید یا کانال بهروزرسانی نصب اندروید استودیو موجود خود را به کانال بتا تغییر دهید .
DHU را اجرا کنید
پس از نصب DHU، میتوانید برنامههای Android Auto خود را با اتصال دستگاه تلفن همراه و ایستگاه کاری خود از طریق USB آزمایش کنید. DHU را با اتصال دستگاه تلفن همراه خود به یک دستگاه توسعه با استفاده از حالت لوازم جانبی (توصیه شده برای DHU 2.x) یا ADB Tunneling اجرا کنید.
اتصال با استفاده از حالت لوازم جانبی
اندروید اتو از اتصال به DHU نسخه ۲.x با پروتکل Android Open Accessory (AOA) با استفاده از دستور زیر پشتیبانی میکند:
./desktop-head-unit --usb به طور پیشفرض، DHU لیست دستگاههای USB موجود را اسکن میکند و سعی میکند به اولین دستگاه سازگار متصل شود. برای هدف قرار دادن یک دستگاه خاص، شناسه دستگاه را به عنوان بخشی از دستور --usb به شرح زیر وارد کنید:
./desktop-head-unit --usb=[DEVICE_ID]اتصال با استفاده از تونلینگ ADB
این روش نیاز به تنظیم اتصال به سرور واحد پخش خودرو اندروید اتو از طریق Android Debug Bridge ( adb ) دارد. برای تنظیم تونلینگ و اجرای DHU، این مراحل را دنبال کنید:
- اگر حالت توسعهدهندهی اندروید اتو فعال نیست، آن را فعال کنید .
اگر سرور واحد اصلی از قبل در حال اجرا نیست، منوی سرریز را باز کنید و همانطور که در شکل 1 نشان داده شده است، گزینه Start head unit server را انتخاب کنید.
همانطور که در شکل ۲ نشان داده شده است، یک سرویس پیشزمینه در ناحیه اعلانها ظاهر میشود که نشان میدهد سرور در حال اجرا است.

شکل ۱. منوی زمینه با گزینههای توسعهدهنده.

شکل ۲. اعلانی مبنی بر فعال بودن سرور واحد مرکزی
در برنامه Android Auto، روی خودروهای قبلاً متصل شده در بالای تنظیمات ضربه بزنید و تأیید کنید که افزودن خودروهای جدید به Android Auto فعال است.
دستگاه تلفن همراه را با استفاده از USB به دستگاه توسعه وصل کنید.
مطمئن شوید که قفل صفحه نمایش دستگاه تلفن همراه باز است تا بتواند DHU را اجرا کند.
در دستگاه توسعه، دستور
adbزیر را اجرا کنید تا اتصالات سوکت را از پورت ۵۲۷۷ دستگاه توسعه به همان شماره پورت در دستگاه تلفن همراه هدایت کند. این پیکربندی به DHU اجازه میدهد تا از طریق سوکت TCP به سرور واحد اصلی که روی دستگاه تلفن همراه اجرا میشود، متصل شود.adb forward tcp:5277 tcp:5277DHU را با اجرای دستور
desktop-head-unit.exeدر ویندوز یا./desktop-head-unitدر macOS یا لینوکس، از دایرکتوریSDK_LOCATION /extras/google/auto/شروع کنید:cd SDK_LOCATION/extras/google/autodesktop-head-unit.exe # Windows./desktop-head-unit # macOS or Linux

- اگر این اولین باری است که دستگاه تلفن همراه را به DHU متصل میکنید، صفحه دستگاه تلفن همراه را بررسی کنید تا شرایط خدمات را بپذیرید و در صورت لزوم تنظیمات مجوز را تنظیم کنید.
پس از شروع DHU، میتوانید از دستورات کنسول DHU برای اجرا و آزمایش برنامه خود استفاده کنید.
گزینههای خط فرمان
به طور پیشفرض، سرور واحد اصلی از طریق پورت ۵۲۷۷ متصل میشود. برای لغو میزبان یا پورت، از پرچم --adb=<[localhost:]port> استفاده کنید، همانطور که در مثال زیر نشان داده شده است:
./desktop-head-unit --adb=5999 به طور پیشفرض، DHU یک واحد هد سازگار با اندروید اتو را با رابط کاربری لمسی شبیهسازی میکند. با کلیک کردن 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 . پیشفرض پورت ۵۲۷۷ است. |
-a ، --usb= DEVICE_ID | استفاده از انتقال USB AOA. اختیاری DEVICE_ID . |
-v , --version | نمایش اطلاعات نسخه. |
-l , --licenses | نمایش مجوزهای متنباز |
-h , --headless | در حالت بدون سر، بدون رابط کاربری اجرا کنید. |
-t ، --always_show_window_on_top | نمایش پنجرههای DHU روی پنجرههای دیگر (به طور پیشفرض غیرفعال است) |
-? --help | نمایش فهرست راهنما. |
راهنمای کاربر DHU
این بخش ویژگیهای پشتیبانیشده توسط DHU و نحوه استفاده از آنها را شرح میدهد.
دستورات در پنجره ترمینالی که DHU را در آن شروع کردهاید وارد میشوند. چندین دستور را میتوان با جدا کردن آنها با ; در یک خط اجرا کرد.
سیستم
| فرمان | کلید | توضیحات |
|---|---|---|
help [ command ] | نمایش مجموعه کامل دستورات. اگر نام دستوری مشخص شده باشد، راهنمای آن دستور نمایش داده میشود. | |
quitexit | Alt+Q | واحد اصلی را خاموش کنید. |
sleep [ seconds ] | به مدت یک ثانیه به حالت خواب برود. اگر تأخیری مشخص شده باشد، به همان تعداد seconds به حالت خواب برود. این میتواند برای اسکریپتنویسی واحد اصلی با استفاده از ./desktop-head-unit < script.txt در، مثلاً، یک محیط CI استفاده شود. | |
screenshot filename.png | ذخیره اسکرینشات با نام filename.png . | |
licenses | مجوزهای کتابخانههای مورد استفاده در DHU را نمایش دهید. | |
keycode keycode | keycode ، یکی از نامهای فهرستشده در بخش کدهای کلید، را ارسال کنید. |
لمس و صفحه لمسی
وقتی لمس یا صفحه لمسی فعال باشد، کلیک کردن در پنجره نمایش، برای لمس، یا کلیک کردن در پنجره صفحه لمسی، برای صفحه لمسی، به عنوان یک رویداد لمسی ثبت میشود.
برای لمس، با کلیک راست روی محل انگشت اول، و سپس کلیک و نگه داشتن دکمه سمت راست برای انگشت دوم، چند لمسی را شبیهسازی کنید. نقطه مرکزی دو انگشت ثابت میماند؛ حرکت ماوس به شما امکان میدهد آنها را حول مرکز بچرخانید، به داخل و خارج فشار دهید یا هر دو را انجام دهید.
برای صفحه لمسی، دکمه سمت چپ را کلیک کرده و نگه دارید تا بین عناصر مختلف رابط کاربری روی صفحه حرکت کنید. کلیک روی دکمه سمت راست، عنصری را که فوکوس دارد انتخاب میکند.
| فرمان | کلید | توضیحات |
|---|---|---|
tap xy | یک رویداد لمس را در مختصات مشخص شده شبیهسازی کنید. |
کنترل کننده چرخشی
DHU از کنترلر چرخشی پشتیبانی میکند. وقتی فعال باشد، اقدامات زیر پشتیبانی میشوند:
- کلیک کردن به بالا، پایین، چپ و راست روی D-pad
- چرخش در جهت عقربههای ساعت و خلاف جهت عقربههای ساعت
- انجام یک حرکت چرخشی سریع (پنج قدم همزمان)
- کلیک کردن به پایین و عقب روی کنترلر
دستورات و کلیدهای اتصال در جدول زیر فهرست شدهاند.
چرخ اسکرول روی ماوس، دستورات dpad rotate ارسال میکند و کلیک دکمه وسط ماوس، که معمولاً چرخ اسکرول است، دستورات dpad click ارسال میکند.
توجه داشته باشید که اکثر خودروها صفحه نمایش لمسی دارند. برخی از خودروها فقط کنترلکنندههای چرخشی دارند و برخی دیگر ترکیبی از لمس و کنترلکننده دارند. خودروها همچنین میتوانند از صفحه لمسی پشتیبانی کنند که میتواند برای پیمایش نقشه و ورود متن استفاده شود. هنگام شبیهسازی واحدهای هد خودروهای مختلف، به این پیکربندیهای مختلف توجه داشته باشید.
| فرمان | کلید | توضیحات |
|---|---|---|
dpad {up|down|left|right} | کلیدهای جهتنما | کنترل کننده چرخشی را حرکت دهید. |
dpad {ur|dl|ul|dr} | کنترل کننده چرخشی را حرکت دهید. | |
dpad soft {left|right} | کلیدهای Shift+جهتنما | دکمههای کناری موجود در برخی از کنترلرهای چرخشی را فشار دهید. |
dpad click | بازگشت | کنترل کننده چرخشی را فشار دهید. |
dpad back | بکاسپیس | دکمه بازگشت (Back) در برخی از کنترلرهای چرخشی موجود است. |
dpad rotate left | ۱ | کنترلکننده چرخشی را خلاف جهت عقربههای ساعت (سمت چپ) بچرخانید. |
dpad rotate right | ۲ | کنترلکننده چرخشی را در جهت عقربههای ساعت (راست) بچرخانید. |
dpad flick left | شیفت+۱ | کنترلکننده چرخشی را با سرعت در خلاف جهت عقربههای ساعت بچرخانید. |
dpad flick right | شیفت+۲ | کنترل کننده چرخشی را با سرعت در جهت عقربه های ساعت بچرخانید. |
dpad 0-9*#+ | پد شماره |
میکروفون
DHU از استفاده از میکروفون برای ورودی صدا یا پخش آهنگ صوتی از پیش ضبط شده پشتیبانی میکند. برای راحتی، فایلهای صوتی زیر برای دستورات صوتی رایج همراه DHU ارائه شدهاند. این فایلهای صوتی در دایرکتوری SDK_LOCATION /extras/google/auto/voice/ قرار دارند.
| نام فایل | متن |
|---|---|
navhome.wav | به سمت خانه حرکت کنید. |
navwork.wav | به محل کار بروید. |
navsoh.wav | به اپرای سیدنی بروید. |
navgoogle.wav | به آدرس ۱۶۰۰ آمفیتئاتر پارکوی، کالیفرنیا، ایالات متحده آمریکا بروید. |
exitnav.wav | خروج از ناوبری. |
howlong.wav | چقدر مونده تا برسم؟ |
showtraffic.wav | نمایش ترافیک. |
showalternateroute.wav | مسیرهای جایگزین را نشان دهید. |
pause.wav | موسیقی را متوقف کنید. |
nextturn.wav | نوبت بعدی من کی است؟ |
برای اجرای یک فایل .wav جداگانه در خط فرمان DHU، از دستور زیر استفاده کنید:
mic play /path/to/filename.wavجدول زیر سایر دستورات مربوط به میکروفون را فهرست میکند:
| فرمان | کلید | توضیحات |
|---|---|---|
mic begin | م | میکروفون را فعال کنید، کلیک دکمه روی فرمان را شبیهسازی کنید و منتظر ورودی از میکروفون کامپیوتر باشید. |
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 ] | مکان را روی مقادیر طول و عرض جغرافیایی مشخص شده به همراه دقت اختیاری (m)، ارتفاع (m)، سرعت (m/s) و جهت (degrees) تنظیم کنید. در صورت نیاز، برای صرف نظر کردن از پارامترهای اختیاری، NAN را وارد کنید. |
odometer km [ current_trip_km ] | کیلومترشمار را روی کیلومتر مشخص شده به همراه مقدار کیلومتر سفر فعلی اختیاری تنظیم کنید. |
speed [ speed ] | سرعت خودرو را روی مقدار مشخص شده (متر بر ثانیه) تنظیم کنید یا (بدون وارد کردن مقدار) سنسور را غیرفعال کنید. |
tollcard {insert|remove} | کارت عوارض را وارد یا خارج کنید. |
gps_satellite number_in_use [[ azimuth ] [ elevation ] [ prn ] [ snr ] [ used_in_fix ]] | حسگر ماهواره GPS را روی عدد مشخص شده در مقدار استفاده به همراه لیست اختیاری آزیموت (درجه در محدوده ۰ تا ۳۶۰)، ارتفاع (درجه در محدوده ۰ تا ۹۰)، prn (نویز شبه تصادفی)، snr (دسی بل) و used در fix ( true یا false ) تنظیم کنید. |
parking_brake engaged | سنسور ترمز دستی را روی true یا false تنظیم کنید. |
gear gear_value | سنسور دنده را روی مقدار مشخص شده تنظیم کنید (برای مثال، 0 برای خلاص، 100 برای حرکت، 101 برای پارک و 102 برای دنده عقب). |
حالتهای روز و شب
DHU با دستورات و کلیدهای اتصال زیر، از شبیهسازی تغییر حالت بین روز و شب پشتیبانی میکند:
| فرمان | کلید | توضیحات |
|---|---|---|
day | شیفت+N | حالت روز را فعال کنید—روشنایی بالا، رنگ کامل. |
night | کنترل+N | حالت شب را فعال کنید—روشنایی کم، کنتراست بالا. |
daynightnightday | ن | حالت روز یا شب را تغییر دهید. |
مدیریت تمرکز
DHU با استفاده از دستورات زیر، از شبیهسازی اینکه آیا اندروید اتو روی واحد اصلی فوکوس کرده است یا خیر، پشتیبانی میکند:
| فرمان | توضیحات |
|---|---|
focus video {on|off|toggle} | فعال یا غیرفعال کردن فوکوس ویدیو روی پخش کننده اصلی. خاموش کردن فوکوس ویدیو، پنهان کردن پخش کننده اصلی در اندروید اتو را شبیهسازی میکند. |
focus audio {on|off|toggle} | فعال یا غیرفعال کردن فوکوس صوتی روی پخش کننده اصلی. خاموش کردن فوکوس صوتی، پخش منبع صوتی خودش را توسط پخش کننده اصلی شبیهسازی میکند. |
focus nav {on|off|toggle} | فعال یا غیرفعال کردن فوکوس ناوبری روی دستگاه اصلی. خاموش کردن فوکوس ناوبری، دستگاه اصلی را در حال اجرای سیستم ناوبری خود شبیهسازی میکند. |
محدودیتها و وضعیت رانندگی
DHU از شبیهسازی محدودیتهای خاصی هنگام حرکت وسیله نقلیه، مانند غیرفعال کردن صفحه کلید و عدم اجازه تنظیمات تلفن، با استفاده از دستورات زیر پشتیبانی میکند:
| فرمان | کلید | توضیحات |
|---|---|---|
restrict none | یو | همه محدودیتها را غیرفعال کنید. |
restrict all | شیفت+U | همه محدودیتها، مانند شبیهسازی رانندگی، را فعال کنید. |
خوشه ابزار
DHU از شبیهسازی یک صفحه کیلومترشمار پشتیبانی میکند. این صفحه کیلومترشمار معمولاً پشت فرمان قرار دارد و در طول ناوبری اطلاعات اولیهای در مورد پیچ بعدی - مانند نام جاده بعدی یا فلش راهنما - مسافت یا زمان را نشان میدهد. همچنین اطلاعات مربوط به تماسهای تلفنی در حال انجام را نیز نمایش میدهد.

این قابلیت را میتوان با استفاده از ورودی instrumentcluster در بخش [general] فایل پیکربندی، یا با استفاده از ورودیهای navcluster یا phonecluster برای کنترل جداگانه هر ویژگی، فعال کرد.
[general]
...
instrumentcluster = true
نمایش خوشهای
برخی از وسایل نقلیه دارای نمایشگرهای خوشهای هستند که قادر به نمایش اطلاعات بصری غنی مانند کاشیهای نقشه هستند. با شروع از نسخه ۲.۱ DHU (که در حال حاضر با استفاده از کانال بهروزرسانی بتای اندروید استودیو در دسترس است)، میتوانید چنین نمایشگری را در دستگاه توسعه خود شبیهسازی کنید.
این کار را میتوان با استفاده از یک فایل پیکربندی با بخش [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جدول زیر سایر کدهای کلید موجود را فهرست میکند:
| کد کلید | توضیحات |
|---|---|
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 | بولی | فعال کردن استفاده از تاچپد برای پیمایش رابط کاربری. |
touchpadtapasselect | false | بولی | وقتی مقدار آن درست باشد، ضربه زدن روی صفحه لمسی یک رویداد انتخاب است. |
touchpaduiabsolute | false | بولی | وقتی touchpadnavigation روی true تنظیم شده باشد، تعیین کنید که آیا لمسها باید به صورت مطلق یا به صورت حرکات (gestures) در نظر گرفته شوند. |
پیکربندی ویدیو
اندروید اتو از سه وضوح تصویر ویدیویی پشتیبانی میکند:
- ۴۸۰p (۸۰۰x۴۸۰، پیشفرض)
- ۷۲۰p (۱۲۸۰x۷۲۰)
- ۱۰۸۰p (۱۹۲۰x۱۰۸۰)
برای پشتیبانی از نسبتهای ابعاد دیگر، دستگاه پخش میتواند در صورت لزوم حاشیهای برای کادر حروف (ستون) تعیین کند. برای مثال، اگر میخواهید صفحه نمایشی با وضوح 1000x600 داشته باشید، وضوح تصویر را روی 720p (1280x720) و marginwidth 280 و marginheight 120 تنظیم کنید. این کار باعث میشود حاشیه 140 پیکسلی در لبههای چپ و راست و حاشیه 60 پیکسلی در بالا و پایین اضافه شود.
پیکربندی مثال زیر یک صفحه نمایش معمولی ۶ اینچی (۷۵۰x۴۵۰) را شبیهسازی میکند:
[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 | شناور | در تنظیمات ویدیو استفاده میشود. |
پیکربندی حسگر
برای شبیهسازی دادههای حسگر و ارسال آن به اندروید اتو، حسگرهای مربوطه باید با استفاده از گزینههای زیر فعال شوند. اگر حسگری فعال نباشد، هر دادهای که با استفاده از دستورات 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 | بولی | فعال کردن خوشه ابزار. یک پنجره به رابط کاربری اضافه میکند تا وضعیت ناوبری و تلفن را نمایش دهد. |
navcluster | false | بولی | فعال کردن خوشه ابزار. یک پنجره به رابط کاربری اضافه میکند تا وضعیت ناوبری را نمایش دهد. |
phonecluster | false | بولی | فعال کردن خوشه ابزار. یک پنجره به رابط کاربری اضافه میکند تا وضعیت تلفن را نمایش دهد. |
playbackstatus | false | بولی | فعال کردن وضعیت پخش. پنجرهای به رابط کاربری اضافه میکند تا پیامهای وضعیت پخش را نمایش دهد. |
driverposition | left | رشته | یکی از: left ، center ، یا right . |
windowleft | | عدد صحیح | موقعیت چپ پنجره اصلی را تنظیم کنید. |
windowtop | | عدد صحیح | موقعیت بالای پنجره اصلی را تنظیم کنید. |
fueltypes | unleaded | رشتهها | یک یا چند مورد از موارد زیر، در یک لیست جدا شده با کاما:
|
evconnectors | | رشتهها | صفر یا بیشتر از موارد زیر، در یک لیست جدا شده با کاما:
fueltypes شامل electric باشد. |
عیبیابی
گاهی اوقات DHU هنگام اتصال اولیه، صفحه خالی نشان میدهد. میتوانید با انجام موارد زیر این مشکل را حل کنید:
- DHU را ببندید.
- برای متوقف کردن و راهاندازی مجدد سرور واحد اصلی، مرحله ۵ که در بخش اجرای DHU توضیح داده شده است را دنبال کنید.
- DHU را دوباره شروع کنید.
- مجوزهای اضافی درخواست شده روی صفحه تلفن را اعطا کنید. ممکن است DHU دوباره خاموش شود.
- در صورت لزوم، DHU را مجدداً راه اندازی کنید.