若要创建 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中仅定义一个授权。声明基于操作的 intent 过滤器,
com.android.car.appcard.APP_CARD_PROVIDER
扩展 AppCardContentProvider
本部分介绍了 override 和 protected final 方法。
替换方法
val authority: Stringandroid:authorities 清单属性中定义的授权。fun onCreate(): Booleansuper.onCreate()。使用此方法设置在请求 AppCard 时可能会导致延迟的功能。val appCardIds: Listfun onAppCardAdded(String, AppCardContext): AppCardAppCardContext,以提示 AppCard 的显示方式。
使用此方法设置作为提供方支持的 AppCards 所需的任何功能。调用此函数后,与指定 ID 对应的 AppCard 会被视为处于活跃状态。
fun onAppCardRemoved(String)fun onAppCardContextChanged(String, AppCardContext)AppCardContext 时,会调用此方法。受保护的最终方法
fun sendAppCardUpdate(AppCard)fun sendAppCardComponentUpdate(String, Component)EnforceFastUpdateRate 标记,则立即发送更新。常见问题解答
示例实现在哪里?