یک AppCard ایجاد کنید

برای ایجاد یک AppCard، یک برنامه باید ارائه دهنده ای در مانیفست ایجاد کند که AppCardContentProvider گسترش دهد. AppCardContentProvider جزئیات اساسی را برای تسهیل ایجاد AppCards خلاصه می کند.

اعلامیه آشکار

برای ایجاد یک 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 اعلام کنید

AppCardContentProvider را گسترش دهید

این بخش روش های نهایی را باطل و محافظت شده شرح می دهد.

نادیده گرفتن روش ها

val authority: String
از این روش برای برگرداندن اعتبار تعریف شده در ویژگی android:authorities manifest استفاده کنید.

fun onCreate(): Boolean
این متد باید super.onCreate() را فراخوانی کند. از این روش برای راه‌اندازی عملکردی استفاده کنید که در صورت درخواست AppCard، می‌تواند باعث تأخیر شود.

val appCardIds: List
از این روش برای بازگرداندن لیست شناسه های AppCard پشتیبانی شده استفاده کنید. توصیه می‌کنیم هر شناسه را به صورت کامل بسازید زیرا از این رشته برای ثبت خطاها استفاده می‌شود.

fun onAppCardAdded(String, AppCardContext): AppCard
این روش زمانی فراخوانی می شود که یک AppCard برای اولین بار نشان داده می شود و شناسه مربوط به AppCard و AppCardContext را ارائه می دهد که نکاتی را در مورد نحوه نمایش AppCard ارائه می دهد.

از این روش برای تنظیم هر گونه عملکرد مورد نیاز AppCardهایی که به عنوان ارائه دهنده پشتیبانی می شوند، استفاده کنید. پس از فراخوانی این تابع، AppCard که با شناسه داده شده مطابقت دارد فعال در نظر گرفته می شود.

fun onAppCardRemoved(String)
این روش زمانی فراخوانی می‌شود که هیچ نمونه‌ای از AppCard باقی‌مانده به کاربر نشان داده نشود و تمام پاک‌سازی‌ها را انجام دهد. هنگامی که این تابع فراخوانی می شود، AppCard مربوط به شناسه داده شده غیرفعال در نظر گرفته می شود.

fun onAppCardContextChanged(String, AppCardContext)
این روش زمانی فراخوانی می شود که سیستم می خواهد نحوه نمایش AppCard را به روز کند و یک AppCardContext به روز شده ارسال می کند.

روش های نهایی محافظت شده

fun sendAppCardUpdate(AppCard)
این روش را فراخوانی کنید تا یک به‌روزرسانی برای یک AppCard فعال در صف قرار دهید.

fun sendAppCardComponentUpdate(String, Component)
این روش را فراخوانی کنید تا یک به‌روزرسانی برای یک جزء در یک AppCard فعال در صف قرار دهید. اگر مؤلفه داده شده با EnforceFastUpdateRate برچسب گذاری شده باشد، به روز رسانی بلافاصله ارسال می شود.

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

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