若要创建 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: String
android:authorities
清单属性中定义的授权。fun onCreate(): Boolean
super.onCreate()
。使用此方法设置在请求 AppCard 时可能会导致延迟的功能。val appCardIds: List
fun onAppCardAdded(String, AppCardContext): AppCard
AppCardContext
,以提示 AppCard 的显示方式。
使用此方法设置作为提供方支持的 AppCards 所需的任何功能。调用此函数后,与指定 ID 对应的 AppCard 会被视为处于活跃状态。
fun onAppCardRemoved(String)
fun onAppCardContextChanged(String, AppCardContext)
AppCardContext
时,会调用此方法。受保护的最终方法
fun sendAppCardUpdate(AppCard)
fun sendAppCardComponentUpdate(String, Component)
EnforceFastUpdateRate
标记,则立即发送更新。常见问题解答
示例实现在哪里?