إنشاء بطاقة تطبيق

لإنشاء AppCard، يجب أن ينشئ التطبيق موفّرًا في البيان يوسّع AppCardContentProvider. تخفي AppCardContentProvider التفاصيل الأساسية لتسهيل إنشاء بطاقات AppCard.

بيان ملف البيان

لإنشاء AppCard، يجب أن ينشئ التطبيق موفّرًا في ملف البيان لتوسيع AppCardContentProvider.

<provider android:name=".SimpleAppCardContentProvider"
            android:authorities="com.example.appcard.sample.media"
            android:permission="@string/host_permission"
            android:exported="true"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.android.car.appcard.APP_CARD_PROVIDER" />
            </intent-filter>
</provider>

يمكن تحديد موفّر واحد فقط لكل حزمة باستخدام الخصائص التالية:

  • android:exported="true"
  • android:enabled="true"
  • android:permission="@string/host_permission"

    أو

    • android:readPermission="@string/host_permission"

      و

      android:writePermission="@string/host_permission"

  • يتوفّر @string/host_permission في مكتبة AppCard ويحدّد إذنًا استنادًا إلى إصدار Android API للنظام.

    لا يمكن استخدام مورد السلسلة إلا عند الإنشاء باستخدام Gradle. عند استخدام Soong، حدِّد السلسلة الصريحة مع قيمة مورد السلسلة وفقًا لمؤهّل المورد المناسب.

  • (تلقائية) android:grantUriPermissions="false"

  • (تلقائية) android:forceUriPermissions="false"

    لتجنُّب النتائج غير المتوقّعة، يجب أن يحدّد مقدّم الخدمة مرجعًا واحدًا فقط في android:authorities.

  • تحديد فلتر أهداف مستند إلى إجراء، com.android.car.appcard.APP_CARD_PROVIDER

Extend AppCardContentProvider

يوضّح هذا القسم الطريقتَين النهائيتَين override وprotected.

طُرق الإلغاء

val authority: String
استخدِم هذه الطريقة لعرض الجهة المحدّدة في سمة البيان android:authorities.

fun onCreate(): Boolean
يجب أن تستدعي هذه الطريقة super.onCreate(). استخدِم هذه الطريقة لإعداد وظيفة قد تتسبّب في حدوث تأخير إذا تم إعدادها عند طلب AppCard.

val appCardIds: List
استخدِم هذه الطريقة لعرض قائمة بمعرّفات AppCard المتوافقة. ننصحك بأن يكون كل معرّف تفصيليًا لأنّ هذه السلسلة تُستخدَم لتسجيل الأخطاء.

fun onAppCardAdded(String, AppCardContext): AppCard
يتم استدعاء هذا الإجراء عند عرض AppCard للمرة الأولى، ويوفّر المعرّف المرتبط بـ AppCard وAppCardContext الذي يقدّم تلميحات حول كيفية عرض AppCard.

استخدِم هذه الطريقة لإعداد أي وظيفة تتطلّبها AppCards المتوافقة كموفّر. بعد استدعاء هذه الدالة، سيتم اعتبار بطاقة AppCard التي تتوافق مع رقم التعريف المحدّد نشطة.

fun onAppCardRemoved(String)
يتم استدعاء هذا الإجراء عندما لا يتم عرض أي مثيلات متبقية من AppCard للمستخدم، ويتعامل مع جميع عمليات التنظيف. عند استدعاء هذه الدالة، يتم اعتبار بطاقة AppCard التي تتوافق مع رقم التعريف المحدّد غير نشطة.

fun onAppCardContextChanged(String, AppCardContext)
يتم استدعاء هذه الطريقة عندما يريد النظام تعديل طريقة عرض AppCard وإرسال AppCardContext معدَّل.

الطُرق النهائية المحمية

fun sendAppCardUpdate(AppCard)
استدعِ هذه الطريقة لوضع تحديث في قائمة الانتظار لبطاقة AppCard نشطة.

fun sendAppCardComponentUpdate(String, Component)
استدعِ هذه الطريقة لوضع تحديث في قائمة الانتظار لمكوِّن في AppCard نشطة. إذا تم وضع علامة EnforceFastUpdateRate على المكوّن المحدّد، سيتم إرسال التعديل على الفور.

الأسئلة الشائعة

أين يمكن العثور على أمثلة على عمليات التنفيذ؟