یک میزبان AppCard را پیکربندی کنید

از AppCardHost برای برقراری ارتباط با برنامه هایی که AppCards را نشان می دهند، استفاده کنید.

مجوزها

هر برنامه ای که از AppCardHost استفاده می کند باید مجوزهای زیر را داشته باشد:

  • android.permission.INTERACT_ACROSS_USERS_FULL
  • android.permission.QUERY_ALL_PACKAGES
  • ( فقط در سطح API 34 و بالاتر) android.car.permission.BIND_APP_CARD_PROVIDER

مقدار دهی اولیه کنید

برای مقداردهی اولیه میزبان، ارائه کنید:

  • زمینه
  • updateRate نرخ به روز رسانی AppCard در میلی ثانیه.
  • fastUpdateRate نرخ به روز رسانی در میلی ثانیه برای اجزای برچسب گذاری شده با EnforceFastUpdateRate
  • responseExecutor رشته ای که می خواهید از برنامه های AppCard پاسخ دریافت کنید.

طراحی

با AppCardHost می توان به یکی از دو روش تعامل کرد:

یا،

AppCardListener

جزء AppCardListener خود را با AppCardHost ثبت می‌کند تا به‌روزرسانی‌های ارتباطی را از برنامه‌های AppCardHost و AppCard دریافت کند. توابع رابط AppCardListener در اینجا به تفصیل آمده است.

fun onAppCardReceived(AppCardContainer)

این عملکرد زمانی فعال می شود که AppCard از یک برنامه دریافت شده باشد. به عنوان AppCardContainer ارسال می شود که یک AppCard و یک appIdentifier برای شناسایی برنامه ارسال کننده AppCard ارائه می دهد.

fun onComponentReceived(AppCardComponentContainer)

این عملکرد زمانی فعال می شود که یک جزء AppCard از یک برنامه دریافت می شود. به‌عنوان AppCardComponentContainer ارسال می‌شود که یک جزء AppCards، Identifier برای شناسایی برنامه‌ای که AppCard را ارسال کرده است، و یک شناسه رشته برای اشاره به AppCard که مؤلفه به آن مرتبط است، ارسال می‌شود.

fun onProviderRemoved(String, String?)

این عملکرد زمانی فعال می شود که یک ارائه دهنده AppCard حذف یا غیرفعال شده باشد. از این روش برای پاکسازی هر AppCard فعال مرتبط با نام بسته و مرجع ارائه دهنده استفاده کنید.

اگر مرجع {@code null} باشد، کل بسته حذف شد.

fun onProviderAdded(String, String?)

این عملکرد زمانی فعال می شود که یک ارائه دهنده AppCard اضافه یا فعال شده باشد.

استفاده از نمونه از این عملکرد به عنوان یک ماشه برای بازخوانی همه AppCard های موجود در انتخابگر AppCard استفاده کنید. اگر اعتبار {@code null} باشد، یک بسته کامل اضافه شد.

fun onPackageCommunicationError(appIdentifier, Throwable)

این عملکرد زمانی فعال می شود که AppCardHost هنگام برقراری ارتباط با ارائه دهنده AppCard با خطا مواجه شود.

استفاده از نمونه از این روش استفاده کنید تا به کاربر نشان دهید که AppCardی که انتخاب کرده است با خطا مواجه شده است.

API ها

fun refreshCompatibleapp()

این روش باید هر زمان که فعالیتی که از هاست استفاده می‌کند از سر گرفته شود، فراخوانی شود تا میزبان بتواند فهرست برنامه‌هایی را که از AppCards پشتیبانی می‌کنند، بازخوانی کند.

fun destroy()

زمانی که یک اکتیویتی که از هاست استفاده می کند از بین می رود این روش را فراخوانی کنید تا میزبان بتواند تمام اتصالات و اعضای داخلی را پاک کند.

fun registerListener(AppCardListener)

برای ثبت AppCardListener استفاده می شود.

fun unregisterListener(AppCardListener)

برای لغو ثبت نام AppCardListener استفاده می شود.

fun getAllAppCards(AppCardContext)

این روش را فراخوانی کنید تا یک AppCardListener ثبت شده را با تمام AppCard های ارائه شده در سیستم با یک AppCardContext داده شده ارائه کنید که نکاتی را در مورد نحوه ساختار AppCard خود به ارائه دهندگان ارائه می دهد.

fun requestAppCard(AppCardContext, appIdentifier, String)

این روش را فراخوانی کنید تا AppCardListener ثبت شده را با یک AppCard خاص تهیه کنید، با توجه به AppCardContext که به ارائه‌دهندگان راهنمایی می‌کند که چگونه AppCard خود را ساختار دهند.

fun notifyAppCardRemoved(appIdentifier, String)

به یک ارائه دهنده AppCard اطلاع دهید که AppCard دیگر فعال نیست.

fun notifyAppCardInteraction(appIdentifier, String, String, String)

به یک ارائه دهنده AppCard اطلاع دهید که با AppCard آن تعامل داشته است. تنها تعامل پشتیبانی شده یک کلیک دکمه است که با AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK مشخص می شود.

توصیه می‌کنیم دکمه‌ای برای AppCard با شنونده onClick ایجاد کنید که این عملکرد را با appIdentifier ، AppCard ID، شناسه مؤلفه و شناسه تعامل فراخوانی می‌کند.

fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)

یک آپدیت AppCardContext برای یک AppCard خاص ارسال کنید. به عنوان مثال، هنگام جابجایی از حالت پارک به حالت Drive، از این روش برای ارسال به‌روزرسانی AppCardContext استفاده کنید که در آن isInteractable برای هر AppCard فعال روی false تنظیم شده است.

سوالات متداول

  1. از کجا می توانم نمونه پیاده سازی ها را پیدا کنم؟

    • میزبان نمونه . تمام AppCard های موجود در سیستم را به همراه قابلیت های تست نمایش می دهد.

    • DriverUI و Pano manager . مدیر Pano به عنوان انتخاب کننده عمل می کند در حالی که DriverUI به عنوان ارائه کننده عمل می کند.

  2. هر AppCardContentProvider می تواند چند AppCard را پشتیبانی کند؟

    AppCardContentProvider می تواند تعداد بی نهایت AppCard را پشتیبانی کند. با این حال، مطمئن شوید که تعداد AppCard ها را با عملکرد ضعیف در مقابل تجربه کاربری مثبت متعادل کنید.

،

از AppCardHost برای برقراری ارتباط با برنامه هایی که AppCards را نشان می دهند، استفاده کنید.

مجوزها

هر برنامه ای که از AppCardHost استفاده می کند باید مجوزهای زیر را داشته باشد:

  • android.permission.INTERACT_ACROSS_USERS_FULL
  • android.permission.QUERY_ALL_PACKAGES
  • ( فقط در سطح API 34 و بالاتر) android.car.permission.BIND_APP_CARD_PROVIDER

مقدار دهی اولیه کنید

برای مقداردهی اولیه میزبان، ارائه کنید:

  • زمینه
  • updateRate نرخ به روز رسانی AppCard در میلی ثانیه.
  • fastUpdateRate نرخ به روز رسانی در میلی ثانیه برای اجزای برچسب گذاری شده با EnforceFastUpdateRate
  • responseExecutor رشته ای که می خواهید از برنامه های AppCard پاسخ دریافت کنید.

طراحی

با AppCardHost می توان به یکی از دو روش تعامل کرد:

یا،

AppCardListener

جزء AppCardListener خود را با AppCardHost ثبت می‌کند تا به‌روزرسانی‌های ارتباطی را از برنامه‌های AppCardHost و AppCard دریافت کند. توابع رابط AppCardListener در اینجا به تفصیل آمده است.

fun onAppCardReceived(AppCardContainer)

این عملکرد زمانی فعال می شود که AppCard از یک برنامه دریافت شده باشد. به عنوان AppCardContainer ارسال می شود که یک AppCard و یک appIdentifier برای شناسایی برنامه ارسال کننده AppCard ارائه می دهد.

fun onComponentReceived(AppCardComponentContainer)

این عملکرد زمانی فعال می شود که یک جزء AppCard از یک برنامه دریافت می شود. به‌عنوان AppCardComponentContainer ارسال می‌شود که یک جزء AppCards، Identifier برای شناسایی برنامه‌ای که AppCard را ارسال کرده است، و یک شناسه رشته برای اشاره به AppCard که مؤلفه به آن مرتبط است، ارسال می‌شود.

fun onProviderRemoved(String, String?)

این عملکرد زمانی فعال می شود که یک ارائه دهنده AppCard حذف یا غیرفعال شده باشد. از این روش برای پاکسازی هر AppCard فعال مرتبط با نام بسته و مرجع ارائه دهنده استفاده کنید.

اگر مرجع {@code null} باشد، کل بسته حذف شد.

fun onProviderAdded(String, String?)

این عملکرد زمانی فعال می شود که یک ارائه دهنده AppCard اضافه یا فعال شده باشد.

استفاده از نمونه از این عملکرد به عنوان یک ماشه برای بازخوانی همه AppCard های موجود در انتخابگر AppCard استفاده کنید. اگر اعتبار {@code null} باشد، یک بسته کامل اضافه شد.

fun onPackageCommunicationError(appIdentifier, Throwable)

این عملکرد زمانی فعال می شود که AppCardHost هنگام برقراری ارتباط با ارائه دهنده AppCard با خطا مواجه شود.

استفاده از نمونه از این روش استفاده کنید تا به کاربر نشان دهید که AppCardی که انتخاب کرده است با خطا مواجه شده است.

API ها

fun refreshCompatibleapp()

این روش باید هر زمان که فعالیتی که از هاست استفاده می‌کند از سر گرفته شود، فراخوانی شود تا میزبان بتواند فهرست برنامه‌هایی را که از AppCards پشتیبانی می‌کنند، بازخوانی کند.

fun destroy()

زمانی که یک اکتیویتی که از هاست استفاده می کند از بین می رود این روش را فراخوانی کنید تا میزبان بتواند تمام اتصالات و اعضای داخلی را پاک کند.

fun registerListener(AppCardListener)

برای ثبت AppCardListener استفاده می شود.

fun unregisterListener(AppCardListener)

برای لغو ثبت نام AppCardListener استفاده می شود.

fun getAllAppCards(AppCardContext)

این روش را فراخوانی کنید تا یک AppCardListener ثبت شده را با تمام AppCard های ارائه شده در سیستم با یک AppCardContext داده شده ارائه کنید که نکاتی را در مورد نحوه ساختار AppCard خود به ارائه دهندگان ارائه می دهد.

fun requestAppCard(AppCardContext, appIdentifier, String)

این روش را فراخوانی کنید تا AppCardListener ثبت شده را با یک AppCard خاص تهیه کنید، با توجه به AppCardContext که به ارائه‌دهندگان راهنمایی می‌کند که چگونه AppCard خود را ساختار دهند.

fun notifyAppCardRemoved(appIdentifier, String)

به یک ارائه دهنده AppCard اطلاع دهید که AppCard دیگر فعال نیست.

fun notifyAppCardInteraction(appIdentifier, String, String, String)

به یک ارائه دهنده AppCard اطلاع دهید که با AppCard آن تعامل داشته است. تنها تعامل پشتیبانی شده یک کلیک دکمه است که با AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK مشخص می شود.

توصیه می‌کنیم دکمه‌ای برای AppCard با شنونده onClick ایجاد کنید که این عملکرد را با appIdentifier ، AppCard ID، شناسه مؤلفه و شناسه تعامل فراخوانی می‌کند.

fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)

یک آپدیت AppCardContext برای یک AppCard خاص ارسال کنید. به عنوان مثال، هنگام جابجایی از حالت پارک به حالت Drive، از این روش برای ارسال به‌روزرسانی AppCardContext استفاده کنید که در آن isInteractable برای هر AppCard فعال روی false تنظیم شده است.

سوالات متداول

  1. از کجا می توانم نمونه پیاده سازی ها را پیدا کنم؟

    • میزبان نمونه . تمام AppCard های موجود در سیستم را به همراه قابلیت های تست نمایش می دهد.

    • DriverUI و Pano manager . مدیر Pano به عنوان انتخاب کننده عمل می کند در حالی که DriverUI به عنوان ارائه کننده عمل می کند.

  2. هر AppCardContentProvider می تواند چند AppCard را پشتیبانی کند؟

    AppCardContentProvider می تواند تعداد بی نهایت AppCard را پشتیبانی کند. با این حال، مطمئن شوید که تعداد AppCard ها را با عملکرد ضعیف در مقابل تجربه کاربری مثبت متعادل کنید.

،

از AppCardHost برای برقراری ارتباط با برنامه هایی که AppCards را نشان می دهند، استفاده کنید.

مجوزها

هر برنامه ای که از AppCardHost استفاده می کند باید مجوزهای زیر را داشته باشد:

  • android.permission.INTERACT_ACROSS_USERS_FULL
  • android.permission.QUERY_ALL_PACKAGES
  • ( فقط در سطح API 34 و بالاتر) android.car.permission.BIND_APP_CARD_PROVIDER

مقدار دهی اولیه کنید

برای مقداردهی اولیه میزبان، ارائه کنید:

  • زمینه
  • updateRate نرخ به روز رسانی AppCard در میلی ثانیه.
  • fastUpdateRate نرخ به روز رسانی در میلی ثانیه برای اجزای برچسب گذاری شده با EnforceFastUpdateRate
  • responseExecutor رشته ای که می خواهید از برنامه های AppCard پاسخ دریافت کنید.

طراحی

با AppCardHost می توان به یکی از دو روش تعامل کرد:

یا،

AppCardListener

جزء AppCardListener خود را با AppCardHost ثبت می‌کند تا به‌روزرسانی‌های ارتباطی را از برنامه‌های AppCardHost و AppCard دریافت کند. توابع رابط AppCardListener در اینجا به تفصیل آمده است.

fun onAppCardReceived(AppCardContainer)

این عملکرد زمانی فعال می شود که AppCard از یک برنامه دریافت شده باشد. به عنوان AppCardContainer ارسال می شود که یک AppCard و یک appIdentifier برای شناسایی برنامه ارسال کننده AppCard ارائه می دهد.

fun onComponentReceived(AppCardComponentContainer)

این عملکرد زمانی فعال می شود که یک جزء AppCard از یک برنامه دریافت می شود. به‌عنوان AppCardComponentContainer ارسال می‌شود که یک جزء AppCards، Identifier برای شناسایی برنامه‌ای که AppCard را ارسال کرده است، و یک شناسه رشته برای اشاره به AppCard که مؤلفه به آن مرتبط است، ارسال می‌شود.

fun onProviderRemoved(String, String?)

این عملکرد زمانی فعال می شود که یک ارائه دهنده AppCard حذف یا غیرفعال شده باشد. از این روش برای پاکسازی هر AppCard فعال مرتبط با نام بسته و مرجع ارائه دهنده استفاده کنید.

اگر مرجع {@code null} باشد، کل بسته حذف شد.

fun onProviderAdded(String, String?)

این عملکرد زمانی فعال می شود که یک ارائه دهنده AppCard اضافه یا فعال شده باشد.

استفاده از نمونه از این عملکرد به عنوان یک ماشه برای بازخوانی همه AppCard های موجود در انتخابگر AppCard استفاده کنید. اگر اعتبار {@code null} باشد، یک بسته کامل اضافه شد.

fun onPackageCommunicationError(appIdentifier, Throwable)

این عملکرد زمانی فعال می شود که AppCardHost هنگام برقراری ارتباط با ارائه دهنده AppCard با خطا مواجه شود.

استفاده از نمونه از این روش استفاده کنید تا به کاربر نشان دهید که AppCardی که انتخاب کرده است با خطا مواجه شده است.

API ها

fun refreshCompatibleapp()

این روش باید هر زمان که فعالیتی که از هاست استفاده می‌کند از سر گرفته شود، فراخوانی شود تا میزبان بتواند فهرست برنامه‌هایی را که از AppCards پشتیبانی می‌کنند، بازخوانی کند.

fun destroy()

زمانی که یک اکتیویتی که از هاست استفاده می کند از بین می رود این روش را فراخوانی کنید تا میزبان بتواند تمام اتصالات و اعضای داخلی را پاک کند.

fun registerListener(AppCardListener)

برای ثبت AppCardListener استفاده می شود.

fun unregisterListener(AppCardListener)

برای لغو ثبت نام AppCardListener استفاده می شود.

fun getAllAppCards(AppCardContext)

این روش را فراخوانی کنید تا یک AppCardListener ثبت شده را با تمام AppCard های ارائه شده در سیستم با یک AppCardContext داده شده ارائه کنید که نکاتی را در مورد نحوه ساختار AppCard خود به ارائه دهندگان ارائه می دهد.

fun requestAppCard(AppCardContext, appIdentifier, String)

این روش را فراخوانی کنید تا AppCardListener ثبت شده را با یک AppCard خاص تهیه کنید، با توجه به AppCardContext که به ارائه‌دهندگان راهنمایی می‌کند که چگونه AppCard خود را ساختار دهند.

fun notifyAppCardRemoved(appIdentifier, String)

به یک ارائه دهنده AppCard اطلاع دهید که AppCard دیگر فعال نیست.

fun notifyAppCardInteraction(appIdentifier, String, String, String)

به یک ارائه دهنده AppCard اطلاع دهید که با AppCard آن تعامل داشته است. تنها تعامل پشتیبانی شده یک کلیک دکمه است که با AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK مشخص می شود.

توصیه می‌کنیم دکمه‌ای برای AppCard با شنونده onClick ایجاد کنید که این عملکرد را با appIdentifier ، AppCard ID، شناسه مؤلفه و شناسه تعامل فراخوانی می‌کند.

fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)

یک آپدیت AppCardContext برای یک AppCard خاص ارسال کنید. به عنوان مثال، هنگام جابجایی از حالت پارک به حالت Drive، از این روش برای ارسال به‌روزرسانی AppCardContext استفاده کنید که در آن isInteractable برای هر AppCard فعال روی false تنظیم شده است.

سوالات متداول

  1. از کجا می توانم نمونه پیاده سازی ها را پیدا کنم؟

    • میزبان نمونه . تمام AppCard های موجود در سیستم را به همراه قابلیت های تست نمایش می دهد.

    • DriverUI و Pano manager . مدیر Pano به عنوان انتخاب کننده عمل می کند در حالی که DriverUI به عنوان ارائه کننده عمل می کند.

  2. هر AppCardContentProvider می تواند چند AppCard را پشتیبانی کند؟

    AppCardContentProvider می تواند تعداد بی نهایت AppCard را پشتیبانی کند. با این حال، مطمئن شوید که تعداد AppCard ها را با عملکرد ضعیف در مقابل تجربه کاربری مثبت متعادل کنید.