استخدِم AppCardHost
للتواصل مع التطبيقات التي تعرض بطاقات التطبيقات.
الأذونات
يجب أن يكون لدى أي تطبيق يستخدم AppCardHost
الأذونات التالية:
android.permission.INTERACT_ACROSS_USERS_FULL
android.permission.QUERY_ALL_PACKAGES
- (في المستوى 34 من واجهة برمجة التطبيقات والإصدارات الأحدث فقط)
android.car.permission.BIND_APP_CARD_PROVIDER
تهيئة
لإعداد المضيف، يجب تقديم ما يلي:
- السياق
updateRate
معدّل تعديل بطاقة التطبيق بالمللي ثانيةfastUpdateRate
معدّل التعديل بالمللي ثانية للمكوّنات التي تم وضع علامة عليها باستخدامEnforceFastUpdateRate
responseExecutor
سلسلة محادثات تريد تلقّي ردود عليها من تطبيقات AppCard
التصميم
يمكن التفاعل مع AppCardHost
بطريقتَين:
- التسجيل بصفتك
AppCardListener
أو
- التفاعل مع واجهات برمجة تطبيقات
AppCardHost
AppCardListener
يسجِّل مكوّن AppCardListener
نفسه باستخدام AppCardHost
لتلقّي آخر المعلومات المتعلّقة بالتواصل من تطبيقَي AppCardHost
وAppCard.
يمكنك الاطّلاع هنا على تفاصيل وظائف واجهة AppCardListener
.
fun onAppCardReceived(AppCardContainer)
AppCardContainer
تقدّم بطاقة تطبيق وappIdentifier
لتحديد التطبيق الذي أرسل بطاقة التطبيقfun onComponentReceived(AppCardComponentContainer)
AppCardComponentContainer
، الذي يقدّم
مكوّن بطاقة تطبيق، Identifier
لتحديد التطبيق الذي أرسل
بطاقة التطبيق، ورقم تعريف سلسلة للإشارة إلى بطاقة التطبيق التي
يرتبط بها المكوّن.fun onProviderRemoved(String, String?)
إذا كانت السلطة هي {@code null}
، يعني ذلك أنّه تمت إزالة حزمة كاملة.
fun onProviderAdded(String, String?)
أمثلة على الاستخدام: استخدِم هذه الدالة كمشغِّل لإعادة تحميل كل ملفّات AppCard المتاحة في أداة اختيار ملفّات AppCard. إذا كانت السلطة هي {@code null}
، يعني ذلك أنّه تمت إضافة
حزمة كاملة.
fun onPackageCommunicationError(appIdentifier, Throwable)
AppCardHost
خطأ عند
التواصل مع موفِّر بطاقة التطبيق.
أمثلة على الاستخدام: استخدِم هذه الطريقة لإعلام المستخدم بأنّه حدث خطأ في بطاقة التطبيق التي اختارها.
واجهات برمجة التطبيقات
fun refreshCompatibleapp()
fun destroy()
fun registerListener(AppCardListener)
AppCardListener
.fun unregisterListener(AppCardListener)
AppCardListener
.fun getAllAppCards(AppCardContext)
AppCardListener
مسجَّل بجميع
بطاقات التطبيقات المقدَّمة في النظام باستخدام AppCardContext
معيّن
يقدّم إرشادات لموفّري التطبيقات حول كيفية تنظيم بطاقة التطبيق.fun requestAppCard(AppCardContext, appIdentifier, String)
AppCardListener
مسجَّل بأحد
بطاقات التطبيقات المحدّدة، وذلك من خلال AppCardContext
يقدّم للموفّرين اقتراحات بشأن كيفية تنظيم بطاقة التطبيق الخاصة بهم.fun notifyAppCardRemoved(appIdentifier, String)
fun notifyAppCardInteraction(appIdentifier, String, String, String)
AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK
.
onClick
يُطلِب هذه الدالة باستخدام appIdentifier
ورقم تعريف "بطاقة التطبيق" ورقم تعريف العنصر
ورقم تعريف التفاعل.fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)
AppCardContext
لـ "بطاقة تطبيق" معيّنة. على سبيل المثال، عند
التبديل من وضع الركن إلى وضع القيادة، استخدِم هذه الطريقة لإرسال AppCardContext
تحديث يتم فيه ضبط isInteractable
على false
لكل
بطاقة تطبيق نشطة.الأسئلة الشائعة
أين يمكنني العثور على نماذج عمليات التنفيذ؟
نموذج المضيف تعرِض هذه الصفحة جميع بطاقات التطبيقات المتاحة في النظام، بالإضافة إلى إمكانات الاختبار.
DriverUI وPano manager يعمل Pano manager كأداة اختيار، بينما يعمل DriverUI كمقدّم.
كم عدد بطاقات التطبيقات التي يمكن لكل
AppCardContentProvider
استخدامها؟يمكن أن يتضمّن
AppCardContentProvider
عددًا غير محدود من بطاقات التطبيقات. ومع ذلك، احرص على موازنة عدد بطاقات التطبيقات ذات الأداء المتدني مع تجربة المستخدم الإيجابية.