اقدامات حفاظتی حواس پرتی را اجرا کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
از آنجایی که تلفن کاربر هنگام استفاده از Android Auto به بلندگوهای خودرو متصل است، باید اقدامات احتیاطی بیشتری برای جلوگیری از حواس پرتی راننده انجام دهید.
وقتی برنامههای رسانهای Android Auto را توسعه میدهید، برای به حداقل رساندن حواسپرتی راننده، محافظهای خاصی را اعمال کنید. این حفاظت ها عبارتند از:
برای دستیابی به این هدف، از CarConnection
API استفاده کنید تا تشخیص دهید که آیا گوشی به صفحه ماشین میتابد یا خیر. اگر چنین شد، آلارمها را غیرفعال کنید یا یک رابط کاربری تلفنی برای مدیریت آنها ارائه دهید. برای تبلیغات، کلید فراداده METADATA_KEY_IS_ADVERTISEMENT
را برای سرکوب اعلانهای حواسپرتی تنظیم کنید.
آلارم های خودرو را خاموش کنید
برنامههای رسانه Android Auto نباید پخش صدا را از طریق بلندگوهای خودرو شروع کنند، مگر اینکه کاربر پخش را مثلاً با فشار دادن دکمه پخش شروع کند. حتی یک هشدار برنامه ریزی شده توسط کاربر از برنامه رسانه شما نباید شروع به پخش موسیقی از طریق بلندگوهای خودرو کند.
برای برآورده کردن این الزام، برنامه شما میتواند از CarConnection
به عنوان سیگنال قبل از پخش هر صوتی استفاده کند. برنامه شما میتواند بررسی کند که آیا تلفن به صفحه ماشین میتابد یا خیر. LiveData
برای نوع اتصال مشاهده کنید. تأیید کنید که مقدار برابر با CONNECTION_TYPE_PROJECTION
است.
اگر تلفن کاربر در حال پخش است، برنامه های رسانه ای که از زنگ هشدار پشتیبانی می کنند باید یکی از این اقدامات را انجام دهند:
بهطور پیشفرض، Android Auto هنگامی که فراداده رسانه در طول جلسه پخش صدا تغییر میکند، اعلانی را نشان میدهد. هنگامی که یک برنامه رسانه از پخش موسیقی به اجرای یک تبلیغ تغییر می کند، نمایش اعلان حواس کاربر را پرت می کند. برای جلوگیری از نمایش اعلان Android Auto، کلید فراداده رسانه METADATA_KEY_IS_ADVERTISEMENT
روی METADATA_VALUE_ATTRIBUTE_PRESENT
تنظیم کنید:
کاتلین
import androidx.media.utils.MediaConstants
override fun onPlayFromMediaId(mediaId: String, extras: Bundle?) {
MediaMetadataCompat.Builder().apply {
if (isAd(mediaId)) {
putLong(
MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
}
// ...add any other properties you normally would.
mediaSession.setMetadata(build())
}
}
جاوا
import androidx.media.utils.MediaConstants;
@Override
public void onPlayFromMediaId(String mediaId, Bundle extras) {
MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
if (isAd(mediaId)) {
builder.putLong(
MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT);
}
// ...add any other properties you normally would.
mediaSession.setMetadata(builder.build());
}
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-12 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-12 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Implement distraction safeguards\n\nBecause a user's phone is connected to a car's speakers when using Android\nAuto, you must take additional precautions to prevent driver distraction.\n\nWhen you develop Android Auto media apps, implement specific safeguards to\nminimize driver distraction. These safeguards include:\n\n- Preventing your app from automatically playing audio through car speakers,\n even for user-scheduled alarms.\n\n- Managing how Android Auto displays notifications when your app switches\n between music and ads.\n\nTo achieve this, use the `CarConnection` API to detect if a phone projects to a\ncar screen. If it does, disable alarms or provide an on-phone UI to manage them.\nFor ads, set the `METADATA_KEY_IS_ADVERTISEMENT` metadata key to suppress\ndistracting notifications.\n\nSuppress alarms in the car\n--------------------------\n\nAndroid Auto media apps must not start playing audio through the car speakers\nunless the user starts playback by, for example, pressing a **Play** button.\nEven a user-scheduled alarm from your media app must not start playing music\nthrough the car speakers.\n\nTo fulfill this requirement, your app can use [`CarConnection`](/reference/androidx/car/app/connection/CarConnection)\nas a signal before playing any audio. Your app can check if the phone is\nprojecting to a car screen. Observe the `LiveData` for the [connection type](/reference/androidx/car/app/connection/CarConnection#getType()).\nConfirm the value is equal to [`CONNECTION_TYPE_PROJECTION`](/reference/androidx/car/app/connection/CarConnection#CONNECTION_TYPE_PROJECTION()).\n\nIf the user's phone is projecting, media apps that support alarms must perform\none of these actions:\n\n- Disable the alarm.\n\n- Re-play the alarm [`STREAM_ALARM`](/reference/android/media/AudioManager#STREAM_ALARM) and provide a UI on the phone screen\n to disable the alarm.\n\nHandle media advertisements\n---------------------------\n\nBy default, Android Auto displays a notification when the media metadata changes\nduring an audio playback session. When a media app switches from playing music\nto running an advertisement, displaying a notification distracts the user. To\nprevent Android Auto from displaying a notification, set the media metadata key\n[`METADATA_KEY_IS_ADVERTISEMENT`](/reference/androidx/media/utils/MediaConstants#METADATA_KEY_IS_ADVERTISEMENT()) to [`METADATA_VALUE_ATTRIBUTE_PRESENT`](/reference/androidx/media/utils/MediaConstants#METADATA_VALUE_ATTRIBUTE_PRESENT()): \n\n### Kotlin\n\n import androidx.media.utils.MediaConstants\n\n override fun onPlayFromMediaId(mediaId: String, extras: Bundle?) {\n MediaMetadataCompat.Builder().apply {\n if (isAd(mediaId)) {\n putLong(\n MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,\n MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)\n }\n // ...add any other properties you normally would.\n mediaSession.setMetadata(build())\n }\n }\n\n### Java\n\n import androidx.media.utils.MediaConstants;\n\n @Override\n public void onPlayFromMediaId(String mediaId, Bundle extras) {\n MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();\n if (isAd(mediaId)) {\n builder.putLong(\n MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,\n MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT);\n }\n // ...add any other properties you normally would.\n mediaSession.setMetadata(builder.build());\n }"]]