استخدِم AppCardHost للتواصل مع التطبيقات التي تعرض بطاقات التطبيقات.
الأذونات
يجب أن يكون لدى أي تطبيق يستخدم AppCardHost الأذونات التالية:
android.permission.INTERACT_ACROSS_USERS_FULLandroid.permission.QUERY_ALL_PACKAGES- (في المستوى 34 من واجهة برمجة التطبيقات والإصدارات الأحدث فقط)
android.car.permission.BIND_APP_CARD_PROVIDER
تهيئة
لإعداد المضيف، يجب تقديم ما يلي:
- السياق
updateRateمعدّل تعديل بطاقة التطبيق بالمللي ثانيةfastUpdateRateمعدّل التعديل بالمللي ثانية للمكوّنات التي تم وضع علامة عليها باستخدامEnforceFastUpdateRateresponseExecutorسلسلة محادثات تريد تلقّي ردود عليها من تطبيقات 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عددًا غير محدود من بطاقات التطبيقات. ومع ذلك، احرص على موازنة عدد بطاقات التطبيقات ذات الأداء المتدني مع تجربة المستخدم الإيجابية.