برنامه های پارک شده برای سیستم عامل Android Automotive بسازید

سیستم عامل Android Automotive علاوه بر پشتیبانی از برنامه‌هایی که برای استفاده در حین رانندگی ساخته شده‌اند، از مرورگرها ، بازی‌ها و برنامه‌های ویدیویی برای استفاده در حالت پارک پشتیبانی می‌کند. می‌توانید همان برنامه‌ای را که برای سایر دستگاه‌های صفحه‌نمایش بزرگ انجام می‌دهید، تنها با چند تغییر جزئی، برای خودروها ارسال کنید.

برنامه موجود خود را در شبیه ساز سیستم عامل Android Automotive تست کنید

برای شروع ساخت برنامه خود برای سیستم عامل Android Automotive، ابتدا برنامه موجود خود را در شبیه ساز سیستم عامل Android Automotive تست کنید. برای راه‌اندازی شبیه‌ساز، مراحل تست را با استفاده از شبیه‌ساز سیستم‌عامل Android Automotive دنبال کنید. سپس می‌توانید با دنبال کردن دستورالعمل‌های Run your app در شبیه‌ساز، برنامه را اجرا کنید.

هنگام اجرای برنامه خود، مراقب مشکلات سازگاری، مانند موارد زیر باشید:

  • صفحه نمایش های اطلاعات سرگرمی دارای جهت گیری ثابت هستند. برای رعایت دستورالعمل‌های کیفیت برنامه خودرو ، برنامه‌ها باید هم جهت‌های عمودی و هم جهت افقی را پشتیبانی کنند.
  • API های موجود در دستگاه های دیگر ممکن است در سیستم عامل Android Automotive در دسترس نباشند. به عنوان مثال، برخی از APIهای خدمات Google Play در سیستم عامل Android Automotive در دسترس نیستند. برای جزئیات در مورد نحوه رسیدگی به این مشکلات، بخش غیرفعال کردن ویژگی‌ها را ببینید.

فایل های مانیفست برنامه خود را پیکربندی کنید

برای هدف قرار دادن دستگاه‌های Android Automotive OS، برنامه شما باید ورودی‌های مانیفست خاصی داشته باشد. پس از شرکت در توزیع در دستگاه‌های سیستم‌عامل Android Automotive، برنامه‌های سازگار تحت یک فرآیند بازبینی دستی قرار می‌گیرند تا اطمینان حاصل شود که برای استفاده در خودرو ایمن هستند. برای جزئیات بیشتر به توزیع در خودروها مراجعه کنید.

ویژگی های مورد نیاز سیستم عامل Android Automotive

برنامه‌هایی که برای سیستم‌عامل Android Automotive ساخته شده‌اند، برای فهرست شدن در فروشگاه Play در خودرو، باید یک عنصر <uses-feature> در فایل AndroidManifest.xml برای ویژگی android.hardware.type.automotive داشته باشند:

<manifest ...>
  ...
  <!--
    Depending on the track you choose to distribute your app, the android:required attribute can
    also be "false" or left unset. See Choose a track for Android Automotive OS.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]" />
  ...
</manifest>

علاوه بر عنصر نشان داده شده در نمونه کد قبلی، برنامه های ساخته شده برای سیستم عامل Android Automotive باید عناصر <uses-feature> زیر را در عنصر ریشه <manifest> داشته باشند:

<uses-feature
  android:name="android.hardware.wifi"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.portrait"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.landscape"
  android:required="false"/>

تنظیم صریح این ویژگی‌ها روی غیرضروری کمک می‌کند تا اطمینان حاصل شود که برنامه شما با ویژگی‌های سخت‌افزاری موجود در دستگاه‌های سیستم‌عامل Android Automotive تداخل ندارد .

اطمینان حاصل کنید که هیچ فعالیتی برای حواس پرتی بهینه وجود ندارد

برای اطمینان از اینکه برنامه شما فقط برای استفاده در حالت پارک در دسترس است، عنصر <meta-data> زیر را در هیچ عنصر <activity> در مانیفست خود وارد نکنید :

<!-- NOT ALLOWED -->
<meta-data
  android:name="distractionOptimized"
  android:value="true"/>

بدون این ابرداده، هنگامی که خودرو وارد حالت رانندگی می شود، فعالیت های برنامه شما به طور خودکار توسط سیستم عامل مسدود می شود تا حواس پرتی برای راننده کاهش یابد. این به عنوان یک تماس چرخه حیات onPause اتفاق می‌افتد، که در طی آن باید پخش ویدیو و صدا را از برنامه خود متوقف کنید.

ورودی های مانیفست مخصوص دسته

علاوه بر الزامات قبلی، که برای همه برنامه‌های پارک شده اعمال می‌شود، دسته‌های ویدیویی و بازی‌ها دارای شرایط اضافی هستند:

برنامه خود را برای سیستم عامل Android Automotive بهینه کنید

برای ارائه بهترین تجربه ممکن به کاربران خود، هنگام ساخت برنامه خود برای سیستم عامل Android Automotive موارد زیر را در نظر داشته باشید.

بهینه سازی برای نمایشگرهای بزرگ

صفحه‌نمایش‌های موجود در خودروهای Android Automotive OS از نظر اندازه، وضوح و نسبت ابعاد بیشتر به تبلت‌ها و تاشوها شباهت دارند تا گوشی‌ها. به این ترتیب، بهینه سازی برنامه شما برای صفحه نمایش های بزرگ به نفع کاربران شما در اتومبیل نیز می باشد.

به ویژه، برای جزئیات بیشتر در مورد استفاده از اندازه های بزرگ نمایشگر، و همچنین رسانه ها و گالری های بازی برای الهام بخشیدن به طراحی و راهنمایی، به راهنمای پشتیبانی از اندازه های مختلف صفحه و انتقال رابط کاربری خود به راهنماهای طرح بندی پاسخگو مراجعه کنید.

سایر بهینه سازی های صفحه نمایش بزرگ مانند سازگاری ورودی به طور مستقیم برای سیستم عامل Android Automotive سودمند نیستند، اما همچنان می توانند تجربه کاربر را بهبود بخشند. به عنوان مثال، ناوبری صفحه کلید از همان APIهایی استفاده می کند که ناوبری چرخشی است ، بنابراین هر بهینه سازی انجام شده در آنجا می تواند برای هر دو عامل مفید باشد.

با ورودی های پنجره و برش های نمایشگر کار کنید

همانند سایر عوامل شکل، سیستم عامل Android Automotive شامل عناصر رابط کاربری سیستم، مانند نوارهای وضعیت و ناوبری، و پشتیبانی از نمایشگرهای غیر مستطیلی است.

به‌طور پیش‌فرض، برنامه‌ها در ناحیه‌ای طراحی می‌شوند که با نوارهای سیستم یا برش‌های نمایشگر همپوشانی ندارد. با این حال، ممکن است بخواهید برنامه شما نوارهای سیستم را پنهان کند، محتوا را در پشت آنها بکشد، یا محتوا را در یک بریدگی نمایشگر نشان دهد، همانطور که در Lay out your app into windows insets توضیح داده شده است. اگر برنامه شما هر یک از اینها را انجام می دهد، برای جزئیات در مورد نحوه کارکرد خوب برنامه خود در اکوسیستم دستگاه های Android Automotive OS به زیربخش های زیر مراجعه کنید.

نوارهای سیستم، حالت همهجانبه و رندر لبه به لبه

میله‌های سیستم در خودروها ممکن است اندازه و موقعیت متفاوتی نسبت به سایر فاکتورها داشته باشند. به عنوان مثال، نوارهای پیمایش ممکن است در سمت چپ، راست یا پایین صفحه قرار گیرند. حتی در صورتی که یک نوار وضعیت در بالا و یک نوار ناوبری در پایین وجود داشته باشد (همانطور که در مورد اکثر تلفن ها و تبلت ها وجود دارد)، اندازه این عناصر احتمالاً در اتومبیل ها بسیار بیشتر خواهد بود.

علاوه بر این، سیستم عامل Android Automotive به OEM ها اجازه می دهد تا کنترل کنند که آیا برنامه ها می توانند نوارهای سیستم را برای ورود و خروج از حالت غوطه ور نمایش یا پنهان کنند یا خیر. به عنوان مثال، با جلوگیری از پنهان کردن نوارهای سیستم توسط برنامه‌ها، OEMها می‌توانند اطمینان حاصل کنند که کنترل‌های خودرو، مانند کنترل‌های آب و هوا، همیشه روی صفحه قابل دسترسی هستند. اگر یک OEM از کنترل نوارهای سیستم توسط برنامه‌ها جلوگیری کرده باشد، وقتی برنامه‌ای با APIهای WindowInsetsController (یا WindowInsetsControllerCompat ) برای نمایش یا پنهان کردن نوارهای سیستم تماس می‌گیرد، هیچ اتفاقی نمی‌افتد. برای کسب اطلاعات بیشتر در مورد نحوه تشخیص اینکه آیا برنامه شما قادر به تغییر inset ها بوده است، به مستندات show و hide مراجعه کنید.

به همین ترتیب، OEM ها همچنین می توانند کنترل کنند که آیا برنامه ها می توانند رنگ و شفافیت نوارهای سیستم را تنظیم کنند یا نه تا اطمینان حاصل کنند که نوارها و عناصر موجود در آنها همیشه به وضوح قابل مشاهده هستند. اگر برنامه شما لبه به لبه می‌کشد، بررسی کنید که فقط محتوای غیر مهم پشت میله‌های سیستم کشیده شود. اگر OEM دستگاه از تنظیم رنگ یا شفافیت نوارها جلوگیری کند، ممکن است این محتوا قابل مشاهده نباشد.

<!-- Depending on OEM configuration, these style declarations
     (and the corresponding runtime calls) may be ignored -->
<style name="...">
  <item name="android:statusBarColor">...</item>
  <item name="android:navigationBarColor">...</item>
  <item name="android:windowTranslucentStatus">...</item>
  <item name="android:windowTranslucentNavigation">...</status>
</style>

اگر برنامه شما لبه به لبه می شود، در مورد اندازه، تعداد، نوع یا مکان نوارهای سیستم فرضیات خود را انجام ندهید. درعوض، از APIهای ورودی پنجره برای چیدمان محتوای برنامه خود نسبت به نوارهای سیستم استفاده کنید. برای جزئیات بیشتر در مورد نحوه استفاده از این APIها، به نمایش محتوای لبه به لبه در برنامه خود مراجعه کنید. مقادیر بالشتک کدگذاری‌شده سخت که اگرچه هرگز توصیه نمی‌شود، ممکن است محتوا را در قسمت امن در سایر دستگاه‌ها نگه دارد، احتمالاً در اتومبیل‌ها چنین نخواهد بود.

با نمایشگرهایی با شکل نامنظم سازگار شوید

علاوه بر نمایشگرهای مستطیلی، برخی از وسایل نقلیه ممکن است دارای صفحه نمایش نامنظم باشند، مانند شکل 1 :

نمودار یک دستگاه سیستم عامل Android Automotive با نمایشگری که       منحنی در سمت راست
شکل 1 : یک دستگاه سیستم عامل Android Automotive با نمایشگری که در سمت راست منحنی است. ناحیه سبز، مستطیل امنی است که با جعبه مرزی برش نمایش منحنی همپوشانی ندارد.

اگر برنامه شما لبه به لبه رندر نمی‌شود، لازم نیست کاری انجام دهید تا در منطقه امن رندر شود.

اگر برنامه شما لبه به لبه رندر می‌شود، می‌توانید انتخاب کنید که می‌خواهید با توجه به برش‌های نمایشگر چگونه رفتار کند. شما می توانید این کار را با استفاده از منابع با تنظیم ویژگی android:windowLayoutInDisplayCutoutMode برای موضوع برنامه خود یا در زمان اجرا با تغییر ویژگی layoutInDisplayCutoutMode پنجره انجام دهید.

از آنجایی که انواع بریدگی‌های نمایشگر موجود در دستگاه‌های دارای سیستم عامل Android Automotive با دستگاه‌های تلفن همراه متفاوت است، از LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT یا LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES که رفتاری برای برش‌های موجود در دستگاه‌های تلفن همراه بهینه‌سازی شده‌اند، استفاده نکنید. در عوض، از LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER یا LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS استفاده کنید تا همیشه از بریدگی اجتناب کنید یا همیشه وارد آن شوید. هنگام انتخاب دومی، برای جزئیات بیشتر در مورد API های مربوط به برش های نمایشگر، به پشتیبانی از برش های نمایشگر مراجعه کنید.

اگر برنامه شما در ناحیه برش نمایشگر رندر می‌شود و می‌خواهید رفتار متفاوتی بین سیستم‌عامل Android Automotive و تلفن همراه داشته باشید، اگر برنامه شما این رفتار را در زمان اجرا تنظیم می‌کند، به غیرفعال کردن ویژگی‌ها برای راهنمایی مراجعه کنید و اگر برنامه شما این رفتار را با استفاده از منبع تنظیم کرد، از منابع جایگزین استفاده کنید. فایل ها

غیر فعال کردن ویژگی ها

اگر یک برنامه تلفن همراه موجود را در سیستم عامل Android Automotive در دسترس قرار می دهید، برخی از ویژگی ها و عملکرد ممکن است مرتبط یا در دسترس نباشند. به عنوان مثال، خودروها معمولاً امکان دسترسی به دوربین را ندارند. علاوه بر این، تنها زیر مجموعه ای از خدمات Google Play در سیستم عامل Android Automotive در دسترس است. برای جزئیات بیشتر به خدمات Google Play برای اتومبیل ها مراجعه کنید.

می‌توانید از PackageManager.hasSystemFeature API استفاده کنید تا با بررسی ویژگی FEATURE_AUTOMOTIVE ، تشخیص دهید که آیا برنامه روی سیستم‌عامل Android Automotive اجرا می‌شود، همانطور که در مثال زیر نشان داده شده است:

کاتلین

val packageManager: PackageManager = ... // Get a PackageManager from a Context
val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

جاوا

PackageManager packageManager = ... // Get a PackageManager from a Context
boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

از طرف دیگر، اگر برنامه شما یک جزء Android Auto نیز دارد، می‌توانید از CarConnection API از کتابخانه برنامه Android for Cars استفاده کنید تا تشخیص دهید که آیا برنامه روی سیستم‌عامل Android Automotive یا Android Auto اجرا می‌شود یا اینکه به ماشین متصل نیست. همه

برای Picture-in-Picture (PiP)، بهترین شیوه های تعیین شده را دنبال کنید تا بررسی کنید که آیا این ویژگی در دسترس است یا خیر و واکنش مناسب نشان دهید.

سناریوهای آفلاین را مدیریت کنید

در حالی که اتومبیل‌ها به طور فزاینده‌ای به اینترنت متصل می‌شوند، برنامه‌ها توصیه می‌شوند که بدون اتصال به اینترنت کار کنند، مانند موارد زیر:

  • کاربران ممکن است از داده تلفن همراه ارائه شده به عنوان بخشی از یک بسته اشتراک از سازنده خودرو انصراف دهند.
  • دسترسی به داده های تلفن همراه ممکن است در مناطق خاصی محدود باشد.
  • خودروهای دارای رادیو Wi-Fi ممکن است خارج از محدوده Wi-Fi باشند یا یک OEM ممکن است Wi-Fi را به نفع یک شبکه تلفن همراه خاموش کند.

برای مقابله با این سناریوها در برنامه خود با تضعیف عملکردی که به دسترسی به اینترنت بستگی دارد، مانند ارائه محتوای آفلاین، آماده باشید. برای اطلاعات بیشتر، بهترین روش‌ها برای بهینه‌سازی شبکه را ببینید.

از منابع جایگزین استفاده کنید

برای کمک به انطباق برنامه خود با خودروها، می‌توانید از واجد شرایط منبع car برای ارائه منابع جایگزین هنگام اجرای خودرو با سیستم عامل Android Automotive استفاده کنید. برای مثال، اگر از منابع Dimension برای ذخیره مقادیر padding استفاده می‌کنید، می‌توانید از مقدار بزرگ‌تری برای مجموعه منابع car استفاده کنید تا اهداف لمسی بزرگ‌تر شوند.

برنامه خود را توزیع کنید

پس از اینکه برنامه خود را بر اساس دستورالعمل‌های کیفیت برنامه خودرو برای دسته آن آزمایش کردید، می‌توانید از Google Play برای توزیع در Cars با Google داخلی استفاده کنید. برای جزئیات بیشتر در مورد فرآیند انتشار، به توزیع در خودروها مراجعه کنید.

درباره برنامه های پارک شده بازخورد بدهید

اگر هنگام توسعه برنامه پارک شده خود برای سیستم عامل Android Automotive به مشکلی برخورد کردید یا درخواست ویژگی داشتید، می توانید آن را با استفاده از Google Issue Tracker گزارش دهید. حتماً تمام اطلاعات درخواستی را در قالب شماره پر کنید. قبل از ثبت یک مشکل جدید، بررسی کنید که آیا قبلاً در لیست مشکلات گزارش شده است یا خیر. می‌توانید با کلیک کردن روی ستاره برای مشکلی در ردیاب مشترک شوید و به مسائل رأی دهید. برای اطلاعات بیشتر، به اشتراک در یک مشکل مراجعه کنید.

یک شماره جدید ایجاد کنید

،

سیستم عامل Android Automotive علاوه بر پشتیبانی از برنامه‌هایی که برای استفاده در حین رانندگی ساخته شده‌اند، از مرورگرها ، بازی‌ها و برنامه‌های ویدیویی برای استفاده در حالت پارک پشتیبانی می‌کند. می‌توانید همان برنامه‌ای را که برای سایر دستگاه‌های صفحه‌نمایش بزرگ انجام می‌دهید، تنها با چند تغییر جزئی، برای خودروها ارسال کنید.

برنامه موجود خود را در شبیه ساز سیستم عامل Android Automotive تست کنید

برای شروع ساخت برنامه خود برای سیستم عامل Android Automotive، ابتدا برنامه موجود خود را در شبیه ساز سیستم عامل Android Automotive تست کنید. برای راه‌اندازی شبیه‌ساز، مراحل تست را با استفاده از شبیه‌ساز سیستم‌عامل Android Automotive دنبال کنید. سپس می‌توانید با دنبال کردن دستورالعمل‌های Run your app در شبیه‌ساز، برنامه را اجرا کنید.

هنگام اجرای برنامه خود، مراقب مشکلات سازگاری، مانند موارد زیر باشید:

  • صفحه نمایش های اطلاعات سرگرمی دارای جهت گیری ثابت هستند. برای رعایت دستورالعمل‌های کیفیت برنامه خودرو ، برنامه‌ها باید هم جهت‌های عمودی و هم جهت افقی را پشتیبانی کنند.
  • API های موجود در دستگاه های دیگر ممکن است در سیستم عامل Android Automotive در دسترس نباشند. به عنوان مثال، برخی از APIهای خدمات Google Play در سیستم عامل Android Automotive در دسترس نیستند. برای جزئیات در مورد نحوه رسیدگی به این مشکلات، بخش غیرفعال کردن ویژگی‌ها را ببینید.

فایل های مانیفست برنامه خود را پیکربندی کنید

برای هدف قرار دادن دستگاه‌های Android Automotive OS، برنامه شما باید ورودی‌های مانیفست خاصی داشته باشد. پس از شرکت در توزیع در دستگاه‌های سیستم‌عامل Android Automotive، برنامه‌های سازگار تحت یک فرآیند بازبینی دستی قرار می‌گیرند تا اطمینان حاصل شود که برای استفاده در خودرو ایمن هستند. برای جزئیات بیشتر به توزیع در خودروها مراجعه کنید.

ویژگی های مورد نیاز سیستم عامل Android Automotive

برنامه‌هایی که برای سیستم‌عامل Android Automotive ساخته شده‌اند، برای فهرست شدن در فروشگاه Play در خودرو، باید یک عنصر <uses-feature> در فایل AndroidManifest.xml برای ویژگی android.hardware.type.automotive داشته باشند:

<manifest ...>
  ...
  <!--
    Depending on the track you choose to distribute your app, the android:required attribute can
    also be "false" or left unset. See Choose a track for Android Automotive OS.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]" />
  ...
</manifest>

علاوه بر عنصر نشان داده شده در نمونه کد قبلی، برنامه های ساخته شده برای سیستم عامل Android Automotive باید عناصر <uses-feature> زیر را در عنصر ریشه <manifest> داشته باشند:

<uses-feature
  android:name="android.hardware.wifi"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.portrait"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.landscape"
  android:required="false"/>

تنظیم صریح این ویژگی‌ها روی غیرضروری کمک می‌کند تا اطمینان حاصل شود که برنامه شما با ویژگی‌های سخت‌افزاری موجود در دستگاه‌های سیستم‌عامل Android Automotive تداخل ندارد .

اطمینان حاصل کنید که هیچ فعالیتی برای حواس پرتی بهینه وجود ندارد

برای اطمینان از اینکه برنامه شما فقط برای استفاده در حالت پارک در دسترس است، عنصر <meta-data> زیر را در هیچ عنصر <activity> در مانیفست خود وارد نکنید :

<!-- NOT ALLOWED -->
<meta-data
  android:name="distractionOptimized"
  android:value="true"/>

بدون این ابرداده، هنگامی که خودرو وارد حالت رانندگی می شود، فعالیت های برنامه شما به طور خودکار توسط سیستم عامل مسدود می شود تا حواس پرتی برای راننده کاهش یابد. این به عنوان یک تماس چرخه حیات onPause اتفاق می‌افتد، که در طی آن باید پخش ویدیو و صدا را از برنامه خود متوقف کنید.

ورودی های مانیفست مخصوص دسته

علاوه بر الزامات قبلی، که برای همه برنامه‌های پارک شده اعمال می‌شود، دسته‌های ویدیویی و بازی‌ها دارای شرایط اضافی هستند:

برنامه خود را برای سیستم عامل Android Automotive بهینه کنید

برای ارائه بهترین تجربه ممکن به کاربران خود، هنگام ساخت برنامه خود برای سیستم عامل Android Automotive موارد زیر را در نظر داشته باشید.

بهینه سازی برای نمایشگرهای بزرگ

صفحه‌نمایش‌های موجود در خودروهای Android Automotive OS از نظر اندازه، وضوح و نسبت ابعاد بیشتر به تبلت‌ها و تاشوها شباهت دارند تا گوشی‌ها. به این ترتیب، بهینه سازی برنامه شما برای صفحه نمایش های بزرگ به نفع کاربران شما در اتومبیل نیز می باشد.

به ویژه، برای جزئیات بیشتر در مورد استفاده از اندازه های بزرگ نمایشگر، و همچنین رسانه ها و گالری های بازی برای الهام بخشیدن به طراحی و راهنمایی، به راهنمای پشتیبانی از اندازه های مختلف صفحه و انتقال رابط کاربری خود به راهنماهای طرح بندی پاسخگو مراجعه کنید.

سایر بهینه سازی های صفحه نمایش بزرگ مانند سازگاری ورودی به طور مستقیم برای سیستم عامل Android Automotive سودمند نیستند، اما همچنان می توانند تجربه کاربر را بهبود بخشند. به عنوان مثال، ناوبری صفحه کلید از همان APIهایی استفاده می کند که ناوبری چرخشی است ، بنابراین هر بهینه سازی انجام شده در آنجا می تواند برای هر دو عامل مفید باشد.

با ورودی های پنجره و برش های نمایشگر کار کنید

همانند سایر عوامل شکل، سیستم عامل Android Automotive شامل عناصر رابط کاربری سیستم، مانند نوارهای وضعیت و ناوبری، و پشتیبانی از نمایشگرهای غیر مستطیلی است.

به‌طور پیش‌فرض، برنامه‌ها در ناحیه‌ای طراحی می‌شوند که با نوارهای سیستم یا برش‌های نمایشگر همپوشانی ندارد. با این حال، ممکن است بخواهید برنامه شما نوارهای سیستم را پنهان کند، محتوا را در پشت آنها بکشد، یا محتوا را در یک بریدگی نمایشگر نشان دهد، همانطور که در Lay out your app into windows insets توضیح داده شده است. اگر برنامه شما هر یک از اینها را انجام می دهد، برای جزئیات در مورد نحوه کارکرد خوب برنامه خود در اکوسیستم دستگاه های Android Automotive OS به زیربخش های زیر مراجعه کنید.

نوارهای سیستم، حالت همهجانبه و رندر لبه به لبه

میله‌های سیستم در خودروها ممکن است اندازه و موقعیت متفاوتی نسبت به سایر فاکتورها داشته باشند. به عنوان مثال، نوارهای پیمایش ممکن است در سمت چپ، راست یا پایین صفحه قرار گیرند. حتی در صورتی که یک نوار وضعیت در بالا و یک نوار ناوبری در پایین وجود داشته باشد (همانطور که در مورد اکثر تلفن ها و تبلت ها وجود دارد)، اندازه این عناصر احتمالاً در اتومبیل ها بسیار بیشتر خواهد بود.

علاوه بر این، سیستم عامل Android Automotive به OEM ها اجازه می دهد تا کنترل کنند که آیا برنامه ها می توانند نوارهای سیستم را برای ورود و خروج از حالت غوطه ور نمایش یا پنهان کنند یا خیر. به عنوان مثال، با جلوگیری از پنهان کردن نوارهای سیستم توسط برنامه‌ها، OEMها می‌توانند اطمینان حاصل کنند که کنترل‌های خودرو، مانند کنترل‌های آب و هوا، همیشه روی صفحه قابل دسترسی هستند. اگر یک OEM از کنترل نوارهای سیستم توسط برنامه‌ها جلوگیری کرده باشد، وقتی برنامه‌ای با APIهای WindowInsetsController (یا WindowInsetsControllerCompat ) برای نمایش یا پنهان کردن نوارهای سیستم تماس می‌گیرد، هیچ اتفاقی نمی‌افتد. برای کسب اطلاعات بیشتر در مورد نحوه تشخیص اینکه آیا برنامه شما قادر به تغییر inset ها بوده است، به مستندات show و hide مراجعه کنید.

به همین ترتیب، OEM ها همچنین می توانند کنترل کنند که آیا برنامه ها می توانند رنگ و شفافیت نوارهای سیستم را تنظیم کنند یا نه تا اطمینان حاصل کنند که نوارها و عناصر موجود در آنها همیشه به وضوح قابل مشاهده هستند. اگر برنامه شما لبه به لبه می‌کشد، بررسی کنید که فقط محتوای غیر مهم پشت میله‌های سیستم کشیده شود. اگر OEM دستگاه از تنظیم رنگ یا شفافیت نوارها جلوگیری کند، ممکن است این محتوا قابل مشاهده نباشد.

<!-- Depending on OEM configuration, these style declarations
     (and the corresponding runtime calls) may be ignored -->
<style name="...">
  <item name="android:statusBarColor">...</item>
  <item name="android:navigationBarColor">...</item>
  <item name="android:windowTranslucentStatus">...</item>
  <item name="android:windowTranslucentNavigation">...</status>
</style>

اگر برنامه شما لبه به لبه می شود، در مورد اندازه، تعداد، نوع یا مکان نوارهای سیستم فرضیات خود را انجام ندهید. درعوض، از APIهای ورودی پنجره برای چیدمان محتوای برنامه خود نسبت به نوارهای سیستم استفاده کنید. برای جزئیات بیشتر در مورد نحوه استفاده از این APIها، به نمایش محتوای لبه به لبه در برنامه خود مراجعه کنید. مقادیر بالشتک کدگذاری‌شده سخت که اگرچه هرگز توصیه نمی‌شود، ممکن است محتوا را در قسمت امن در سایر دستگاه‌ها نگه دارد، احتمالاً در اتومبیل‌ها چنین نخواهد بود.

با نمایشگرهایی با شکل نامنظم سازگار شوید

علاوه بر نمایشگرهای مستطیلی، برخی از وسایل نقلیه ممکن است دارای صفحه نمایش نامنظم باشند، مانند شکل 1 :

نمودار یک دستگاه سیستم عامل Android Automotive با نمایشگری که       منحنی در سمت راست
شکل 1 : یک دستگاه سیستم عامل Android Automotive با نمایشگری که در سمت راست منحنی است. ناحیه سبز، مستطیل امنی است که با جعبه مرزی برش نمایش منحنی همپوشانی ندارد.

اگر برنامه شما لبه به لبه رندر نمی‌شود، لازم نیست کاری انجام دهید تا در منطقه امن رندر شود.

اگر برنامه شما لبه به لبه رندر می‌شود، می‌توانید انتخاب کنید که می‌خواهید با توجه به برش‌های نمایشگر چگونه رفتار کند. شما می توانید این کار را با استفاده از منابع با تنظیم ویژگی android:windowLayoutInDisplayCutoutMode برای موضوع برنامه خود یا در زمان اجرا با تغییر ویژگی layoutInDisplayCutoutMode پنجره انجام دهید.

از آنجایی که انواع بریدگی‌های نمایشگر موجود در دستگاه‌های دارای سیستم عامل Android Automotive با دستگاه‌های تلفن همراه متفاوت است، از LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT یا LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES که رفتاری برای برش‌های موجود در دستگاه‌های تلفن همراه بهینه‌سازی شده‌اند، استفاده نکنید. در عوض، از LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER یا LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS استفاده کنید تا همیشه از بریدگی اجتناب کنید یا همیشه وارد آن شوید. هنگام انتخاب دومی، برای جزئیات بیشتر در مورد API های مربوط به برش های نمایشگر، به پشتیبانی از برش های نمایشگر مراجعه کنید.

اگر برنامه شما در ناحیه برش نمایشگر رندر می‌شود و می‌خواهید رفتار متفاوتی بین سیستم‌عامل Android Automotive و تلفن همراه داشته باشید، اگر برنامه شما این رفتار را در زمان اجرا تنظیم می‌کند، به غیرفعال کردن ویژگی‌ها برای راهنمایی مراجعه کنید و اگر برنامه شما این رفتار را با استفاده از منبع تنظیم کرد، از منابع جایگزین استفاده کنید. فایل ها

غیر فعال کردن ویژگی ها

اگر یک برنامه تلفن همراه موجود را در سیستم عامل Android Automotive در دسترس قرار می دهید، برخی از ویژگی ها و عملکرد ممکن است مرتبط یا در دسترس نباشند. به عنوان مثال، خودروها معمولاً امکان دسترسی به دوربین را ندارند. علاوه بر این، تنها زیر مجموعه ای از خدمات Google Play در سیستم عامل Android Automotive در دسترس است. برای جزئیات بیشتر به خدمات Google Play برای اتومبیل ها مراجعه کنید.

می‌توانید از PackageManager.hasSystemFeature API استفاده کنید تا با بررسی ویژگی FEATURE_AUTOMOTIVE ، تشخیص دهید که آیا برنامه روی سیستم‌عامل Android Automotive اجرا می‌شود، همانطور که در مثال زیر نشان داده شده است:

کاتلین

val packageManager: PackageManager = ... // Get a PackageManager from a Context
val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

جاوا

PackageManager packageManager = ... // Get a PackageManager from a Context
boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

از طرف دیگر، اگر برنامه شما یک جزء Android Auto نیز دارد، می‌توانید از CarConnection API از کتابخانه برنامه Android for Cars استفاده کنید تا تشخیص دهید که آیا برنامه روی سیستم‌عامل Android Automotive یا Android Auto اجرا می‌شود یا اینکه به ماشین متصل نیست. همه

برای Picture-in-Picture (PiP)، بهترین شیوه های تعیین شده را دنبال کنید تا بررسی کنید که آیا این ویژگی در دسترس است یا خیر و واکنش مناسب نشان دهید.

سناریوهای آفلاین را مدیریت کنید

در حالی که اتومبیل‌ها به طور فزاینده‌ای به اینترنت متصل می‌شوند، برنامه‌ها توصیه می‌شوند که بدون اتصال به اینترنت کار کنند، مانند موارد زیر:

  • کاربران ممکن است از داده تلفن همراه ارائه شده به عنوان بخشی از یک بسته اشتراک از سازنده خودرو انصراف دهند.
  • دسترسی به داده های تلفن همراه ممکن است در مناطق خاصی محدود باشد.
  • خودروهای دارای رادیو Wi-Fi ممکن است خارج از محدوده Wi-Fi باشند یا یک OEM ممکن است Wi-Fi را به نفع یک شبکه تلفن همراه خاموش کند.

برای مقابله با این سناریوها در برنامه خود با تضعیف عملکردی که به دسترسی به اینترنت بستگی دارد، مانند ارائه محتوای آفلاین، آماده باشید. برای اطلاعات بیشتر، بهترین روش‌ها برای بهینه‌سازی شبکه را ببینید.

از منابع جایگزین استفاده کنید

برای کمک به انطباق برنامه خود با خودروها، می‌توانید از واجد شرایط منبع car برای ارائه منابع جایگزین هنگام اجرای خودرو با سیستم عامل Android Automotive استفاده کنید. برای مثال، اگر از منابع Dimension برای ذخیره مقادیر padding استفاده می‌کنید، می‌توانید از مقدار بزرگ‌تری برای مجموعه منابع car استفاده کنید تا اهداف لمسی بزرگ‌تر شوند.

برنامه خود را توزیع کنید

پس از اینکه برنامه خود را بر اساس دستورالعمل‌های کیفیت برنامه خودرو برای دسته آن آزمایش کردید، می‌توانید از Google Play برای توزیع در Cars با Google داخلی استفاده کنید. برای جزئیات بیشتر در مورد فرآیند انتشار، به توزیع در خودروها مراجعه کنید.

درباره برنامه های پارک شده بازخورد بدهید

اگر هنگام توسعه برنامه پارک شده خود برای سیستم عامل Android Automotive به مشکلی برخورد کردید یا درخواست ویژگی داشتید، می توانید آن را با استفاده از Google Issue Tracker گزارش دهید. حتماً تمام اطلاعات درخواستی را در قالب شماره پر کنید. قبل از ثبت یک مشکل جدید، بررسی کنید که آیا قبلاً در لیست مشکلات گزارش شده است یا خیر. می‌توانید با کلیک کردن روی ستاره برای مشکلی در ردیاب مشترک شوید و به مسائل رأی دهید. برای اطلاعات بیشتر، به اشتراک در یک مشکل مراجعه کنید.

یک شماره جدید ایجاد کنید

،

سیستم عامل Android Automotive علاوه بر پشتیبانی از برنامه‌هایی که برای استفاده در حین رانندگی ساخته شده‌اند، از مرورگرها ، بازی‌ها و برنامه‌های ویدیویی برای استفاده در حالت پارک پشتیبانی می‌کند. می‌توانید همان برنامه‌ای را که برای سایر دستگاه‌های صفحه‌نمایش بزرگ انجام می‌دهید، تنها با چند تغییر جزئی، برای خودروها ارسال کنید.

برنامه موجود خود را در شبیه ساز سیستم عامل Android Automotive تست کنید

برای شروع ساخت برنامه خود برای سیستم عامل Android Automotive، ابتدا برنامه موجود خود را در شبیه ساز سیستم عامل Android Automotive تست کنید. برای راه‌اندازی شبیه‌ساز، مراحل تست را با استفاده از شبیه‌ساز سیستم‌عامل Android Automotive دنبال کنید. سپس می‌توانید با دنبال کردن دستورالعمل‌های Run your app در شبیه‌ساز، برنامه را اجرا کنید.

هنگام اجرای برنامه خود، مراقب مشکلات سازگاری، مانند موارد زیر باشید:

  • صفحه نمایش های اطلاعات سرگرمی دارای جهت گیری ثابت هستند. برای رعایت دستورالعمل‌های کیفیت برنامه خودرو ، برنامه‌ها باید هم جهت‌های عمودی و هم جهت افقی را پشتیبانی کنند.
  • API های موجود در دستگاه های دیگر ممکن است در سیستم عامل Android Automotive در دسترس نباشند. به عنوان مثال، برخی از APIهای خدمات Google Play در سیستم عامل Android Automotive در دسترس نیستند. برای جزئیات در مورد نحوه رسیدگی به این مشکلات، بخش غیرفعال کردن ویژگی‌ها را ببینید.

فایل های مانیفست برنامه خود را پیکربندی کنید

برای هدف قرار دادن دستگاه‌های Android Automotive OS، برنامه شما باید ورودی‌های مانیفست خاصی داشته باشد. پس از شرکت در توزیع در دستگاه‌های سیستم‌عامل Android Automotive، برنامه‌های سازگار تحت یک فرآیند بازبینی دستی قرار می‌گیرند تا اطمینان حاصل شود که برای استفاده در خودرو ایمن هستند. برای جزئیات بیشتر به توزیع در خودروها مراجعه کنید.

ویژگی های مورد نیاز سیستم عامل Android Automotive

برنامه‌هایی که برای سیستم‌عامل Android Automotive ساخته شده‌اند، برای فهرست شدن در فروشگاه Play در خودرو، باید یک عنصر <uses-feature> در فایل AndroidManifest.xml برای ویژگی android.hardware.type.automotive داشته باشند:

<manifest ...>
  ...
  <!--
    Depending on the track you choose to distribute your app, the android:required attribute can
    also be "false" or left unset. See Choose a track for Android Automotive OS.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]" />
  ...
</manifest>

علاوه بر عنصر نشان داده شده در نمونه کد قبلی، برنامه های ساخته شده برای سیستم عامل Android Automotive باید عناصر <uses-feature> زیر را در عنصر ریشه <manifest> داشته باشند:

<uses-feature
  android:name="android.hardware.wifi"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.portrait"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.landscape"
  android:required="false"/>

تنظیم صریح این ویژگی‌ها روی غیرضروری کمک می‌کند تا اطمینان حاصل شود که برنامه شما با ویژگی‌های سخت‌افزاری موجود در دستگاه‌های سیستم‌عامل Android Automotive تداخل ندارد .

اطمینان حاصل کنید که هیچ فعالیتی برای حواس پرتی بهینه وجود ندارد

برای اطمینان از اینکه برنامه شما فقط برای استفاده در حالت پارک در دسترس است، عنصر <meta-data> زیر را در هیچ عنصر <activity> در مانیفست خود وارد نکنید :

<!-- NOT ALLOWED -->
<meta-data
  android:name="distractionOptimized"
  android:value="true"/>

بدون این ابرداده، فعالیت های برنامه شما به طور خودکار توسط سیستم عامل زمانی که خودرو وارد حالت رانندگی می شود مسدود می شود تا حواس پرتی راننده کاهش یابد. این به عنوان یک تماس چرخه حیات onPause اتفاق می‌افتد، که در طی آن باید پخش ویدیو و صدا را از برنامه خود متوقف کنید.

ورودی های مانیفست مخصوص دسته

علاوه بر الزامات قبلی، که برای همه برنامه‌های پارک شده اعمال می‌شود، دسته‌های ویدیویی و بازی‌ها دارای شرایط اضافی هستند:

برنامه خود را برای سیستم عامل Android Automotive بهینه کنید

برای ارائه بهترین تجربه ممکن به کاربران خود، هنگام ساخت برنامه خود برای سیستم عامل Android Automotive موارد زیر را در نظر داشته باشید.

بهینه سازی برای نمایشگرهای بزرگ

صفحه‌نمایش‌های موجود در خودروهای Android Automotive OS از نظر اندازه، وضوح و نسبت ابعاد بیشتر به تبلت‌ها و تاشوها شباهت دارند تا گوشی‌ها. به این ترتیب، بهینه سازی برنامه شما برای صفحه نمایش های بزرگ به نفع کاربران شما در اتومبیل نیز می باشد.

به ویژه، برای جزئیات بیشتر در مورد استفاده از اندازه های بزرگ نمایشگر، و همچنین رسانه ها و گالری های بازی برای الهام بخشیدن به طراحی و راهنمایی، به راهنمای پشتیبانی از اندازه های مختلف صفحه و انتقال رابط کاربری خود به راهنماهای طرح بندی پاسخگو مراجعه کنید.

سایر بهینه سازی های صفحه نمایش بزرگ مانند سازگاری ورودی به طور مستقیم برای سیستم عامل Android Automotive سودمند نیستند، اما همچنان می توانند تجربه کاربر را بهبود بخشند. به عنوان مثال، ناوبری صفحه کلید از همان APIهایی استفاده می کند که ناوبری چرخشی است ، بنابراین هر بهینه سازی انجام شده در آنجا می تواند برای هر دو عامل مفید باشد.

با ورودی های پنجره و برش های نمایشگر کار کنید

همانند سایر عوامل شکل، سیستم عامل Android Automotive شامل عناصر رابط کاربری سیستم، مانند نوارهای وضعیت و ناوبری، و پشتیبانی از نمایشگرهای غیر مستطیلی است.

به‌طور پیش‌فرض، برنامه‌ها در ناحیه‌ای طراحی می‌شوند که با نوارهای سیستم یا برش‌های نمایشگر همپوشانی ندارد. با این حال، ممکن است بخواهید برنامه شما نوارهای سیستم را پنهان کند، محتوا را در پشت آنها بکشد، یا محتوا را در یک بریدگی نمایشگر نشان دهد، همانطور که در Lay out your app into windows insets توضیح داده شده است. اگر برنامه شما هر یک از اینها را انجام می دهد، برای جزئیات در مورد نحوه کارکرد خوب برنامه خود در اکوسیستم دستگاه های Android Automotive OS به زیربخش های زیر مراجعه کنید.

نوارهای سیستم، حالت همهجانبه و رندر لبه به لبه

میله‌های سیستم در خودروها ممکن است اندازه و موقعیت متفاوتی نسبت به سایر فاکتورها داشته باشند. به عنوان مثال، نوارهای پیمایش ممکن است در سمت چپ، راست یا پایین صفحه قرار گیرند. حتی در صورتی که یک نوار وضعیت در بالا و یک نوار ناوبری در پایین وجود داشته باشد (همانطور که در مورد اکثر تلفن ها و تبلت ها وجود دارد)، اندازه این عناصر احتمالاً در اتومبیل ها بسیار بیشتر خواهد بود.

علاوه بر این، سیستم عامل Android Automotive به OEM ها اجازه می دهد تا کنترل کنند که آیا برنامه ها می توانند نوارهای سیستم را برای ورود و خروج از حالت غوطه ور نمایش یا پنهان کنند یا خیر. به عنوان مثال، با جلوگیری از پنهان کردن نوارهای سیستم توسط برنامه‌ها، OEMها می‌توانند اطمینان حاصل کنند که کنترل‌های خودرو، مانند کنترل‌های آب و هوا، همیشه روی صفحه قابل دسترسی هستند. اگر یک OEM از کنترل نوارهای سیستم توسط برنامه‌ها جلوگیری کرده باشد، وقتی برنامه‌ای با APIهای WindowInsetsController (یا WindowInsetsControllerCompat ) برای نمایش یا پنهان کردن نوارهای سیستم تماس می‌گیرد، هیچ اتفاقی نمی‌افتد. برای کسب اطلاعات بیشتر در مورد چگونگی تشخیص اینکه آیا برنامه شما قادر به تغییر قسمتها بود ، به اسناد show و hide مراجعه کنید.

به همین ترتیب ، OEM ها همچنین می توانند کنترل کنند که آیا برنامه ها می توانند رنگ و شفافیت میله های سیستم را تنظیم کنند تا اطمینان حاصل شود که میله ها و عناصر موجود در آنها در همه زمان ها به وضوح قابل مشاهده هستند. اگر برنامه شما لبه به لبه را ترسیم می کند ، بررسی کنید که فقط محتوای غیر بحرانی در پشت میله های سیستم ترسیم شده است. اگر OEM دستگاه از تنظیم رنگ یا شفافیت میله ها جلوگیری کند ، ممکن است این محتوا قابل مشاهده نباشد.

<!-- Depending on OEM configuration, these style declarations
     (and the corresponding runtime calls) may be ignored -->
<style name="...">
  <item name="android:statusBarColor">...</item>
  <item name="android:navigationBarColor">...</item>
  <item name="android:windowTranslucentStatus">...</item>
  <item name="android:windowTranslucentNavigation">...</status>
</style>

اگر برنامه شما به لبه به لبه می رود ، در مورد اندازه ، تعداد ، نوع یا مکان میله های سیستم فرضیاتی نکنید. در عوض ، از API های Windows Insets استفاده کنید تا محتوای برنامه خود را نسبت به میله های سیستم بیان کنید. برای اطلاعات بیشتر در مورد نحوه استفاده از این API ها ، نمایش محتوای Edge to-Edge را در برنامه خود مشاهده کنید. مقادیر بالشتک کدگذاری شده سخت که ، اگرچه هرگز توصیه نمی شود ، ممکن است محتوا را در منطقه امن در سایر دستگاه ها نگه دارد که احتمالاً در اتومبیل نخواهد بود.

با نمایشگرهای شکل نامنظم سازگار شوید

علاوه بر نمایشگرهای مستطیل ، برخی از وسایل نقلیه ممکن است دارای صفحه نمایش نامنظم شکل باشند ، مانند آنچه در شکل 1 نشان داده شده است:

نمودار یک دستگاه سیستم عامل Android Automobile با نمایشگر       خمیده در سمت راست.
شکل 1 : یک دستگاه سیستم عامل Android Automobile با نمایشگر که در سمت راست خمیده است. منطقه سبز مستطیل ایمن است که با جعبه محدود کننده برش صفحه نمایش منحنی همپوشانی ندارد.

اگر برنامه شما لبه به لبه نمی دهد ، نیازی به انجام کاری برای ارائه در منطقه امن نیست.

اگر برنامه شما لبه به لبه را ارائه می دهد ، می توانید انتخاب کنید که چگونه می خواهید با توجه به نمایش برش رفتار کنید. شما می توانید با تنظیم ویژگی android:windowLayoutInDisplayCutoutMode برای موضوع برنامه خود یا در زمان اجرا با اصلاح ویژگی Window's layoutInDisplayCutoutMode ، این کار را با استفاده از منابع انجام دهید.

از آنجا که انواع برش های نمایش داده شده در دستگاه های سیستم عامل Android Automobile با دستگاه های تلفن همراه متفاوت است ، از LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT یا LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES استفاده نکنید ، که دارای عملکرد بهینه سازی شده برای برش های موجود در دستگاه های تلفن همراه هستند. در عوض ، از LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER یا LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS استفاده کنید تا همیشه از آن جلوگیری کنید یا همیشه وارد برش شوید. هنگام انتخاب دومی ، برای اطلاعات بیشتر در مورد API های مربوط به برش های نمایش ، به برش های صفحه نمایش پشتیبانی مراجعه کنید.

اگر برنامه شما به قسمت برش نمایشگر منتقل می شود و می خواهید رفتار متفاوتی بین سیستم عامل خودرو و موبایل Android داشته باشید ، اگر برنامه شما این رفتار را در زمان اجرا تنظیم می کند ، ویژگی های غیرفعال کردن را برای راهنمایی مشاهده کنید و اگر برنامه شما این رفتار را با استفاده از منبع تنظیم می کند ، از منابع جایگزین استفاده کنید. فایل ها

ویژگی ها را غیرفعال کنید

اگر در حال تهیه یک برنامه تلفن همراه موجود در سیستم عامل Android Automobile هستید ، ممکن است ویژگی ها و عملکردهای خاصی مرتبط یا در دسترس نباشد. به عنوان مثال ، اتومبیل ها به طور کلی دسترسی به دوربین ها را فراهم نمی کنند. علاوه بر این ، فقط یک زیر مجموعه از خدمات Google Play در سیستم عامل Android Automobile موجود است. برای اطلاعات بیشتر به Google Play برای اتومبیل ها مراجعه کنید.

شما می توانید از API PackageManager.hasSystemFeature استفاده کنید تا تشخیص دهید که آیا این برنامه با بررسی ویژگی های FEATURE_AUTOMOTIVE در سیستم عامل Android Automobile در حال اجرا است ، همانطور که در مثال زیر نشان داده شده است:

کاتلین

val packageManager: PackageManager = ... // Get a PackageManager from a Context
val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

جاوا

PackageManager packageManager = ... // Get a PackageManager from a Context
boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

از طرف دیگر ، اگر برنامه شما دارای یک مؤلفه Android Auto نیز باشد ، می توانید از API CarConnection از کتابخانه برنامه Android for Cars استفاده کنید تا تشخیص دهد که آیا این برنامه روی سیستم عامل Android Automobile Os یا Android Auto کار می کند - یا اگر به یک ماشین متصل نیست همه

برای تصویر در تصویر (PIP) ، بهترین روشهای تعیین شده را دنبال کنید تا بررسی کنید که آیا این ویژگی در دسترس است و به طور مناسب واکنش نشان می دهد.

رسیدگی به سناریوهای آفلاین

در حالی که اتومبیل ها به طور فزاینده ای به اینترنت متصل می شوند ، برنامه ها توصیه می شود بدون اتصال به اینترنت ، مانند موارد زیر ، دویدن را انجام دهند:

  • کاربران ممکن است از داده های تلفن همراه ارائه شده به عنوان بخشی از یک بسته اشتراک از Auto Maker خودداری کنند.
  • دسترسی به داده های تلفن همراه ممکن است در مناطق خاصی محدود باشد.
  • اتومبیل هایی با رادیوهای Wi-Fi ممکن است از محدوده Wi-Fi خارج شوند ، یا ممکن است OEM Wi-Fi را به نفع یک شبکه تلفن همراه خاموش کند.

با استفاده از عملکردی که به دسترسی به اینترنت بستگی دارد ، مانند ارائه محتوای آفلاین ، آماده باشید تا این سناریوها را در برنامه خود اداره کنید. برای اطلاعات بیشتر ، به بهترین روشها برای بهینه سازی شبکه مراجعه کنید.

از منابع جایگزین استفاده کنید

برای کمک به تطبیق برنامه خود برای خودروها ، می توانید از صلاحیت منابع car برای تهیه منابع متناوب هنگام کار با وسیله نقلیه سیستم عامل Android Automobile استفاده کنید. به عنوان مثال ، اگر از منابع Dimension برای ذخیره مقادیر بالشتک استفاده می کنید ، می توانید از یک مقدار بزرگتر برای مجموعه منابع car استفاده کنید تا اهداف لمسی بزرگتر شود.

برنامه خود را توزیع کنید

پس از آزمایش برنامه خود در برابر دستورالعمل های کیفیت برنامه خودرو برای گروه خود ، می توانید از Google Play برای توزیع در اتومبیل با Google داخلی استفاده کنید. برای اطلاعات بیشتر در مورد فرآیند انتشار ، به توزیع به اتومبیل مراجعه کنید.

در مورد برنامه های پارک شده بازخورد دهید

اگر هنگام تهیه برنامه پارک شده خود برای سیستم عامل Android Automobile ، یک مسئله را وارد کرده اید یا درخواست ویژگی دارید ، می توانید آن را با استفاده از ردیاب Google Issue گزارش دهید. حتماً تمام اطلاعات درخواستی را در الگوی شماره پر کنید. قبل از تشکیل مسئله جدید ، بررسی کنید که آیا قبلاً در لیست موضوعات گزارش شده است یا خیر. با کلیک بر روی ستاره برای مسئله در ردیاب می توانید مشترک شوید و به موضوعات رای دهید. برای اطلاعات بیشتر ، به عضویت در یک موضوع مراجعه کنید.

یک شماره جدید ایجاد کنید