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>
パッケージごとに 1 つのプロバイダのみを定義できます。プロバイダは次のプロパティを持ちます。
android:exported="true"
android:enabled="true"
android:permission="@string/host_permission"
または
android:readPermission="@string/host_permission"
AND,
android:writePermission="@string/host_permission"
@string/host_permission
は AppCard ライブラリに存在し、システムの Android API バージョンに依存する権限を定義します。文字列リソースの使用は、Gradle でビルドする場合にのみ機能します。Soong を使用する場合は、適切なリソース修飾子に従って、文字列リソース値を含む明示的な文字列を指定します。
(デフォルト)
android:grantUriPermissions="false"
(デフォルト)
android:forceUriPermissions="false"
予期しない結果を回避するため、プロバイダは
android:authorities
で 1 つの権限をのみ定義する必要があります。アクションベースのインテント フィルタ
com.android.car.appcard.APP_CARD_PROVIDER
を宣言する
AppCardContentProvider を拡張する
このセクションでは、オーバーライドと保護された final メソッドについて説明します。
メソッドをオーバーライド
val authority: String
android:authorities
マニフェスト プロパティで定義された権限を返します。fun onCreate(): Boolean
super.onCreate()
を呼び出す必要があります。このメソッドを使用して、AppCard がリクエストされたときに設定すると遅延を引き起こす可能性のある機能を設定します。val appCardIds: List
fun onAppCardAdded(String, AppCardContext): AppCard
AppCardContext
を返します。
このメソッドを使用して、プロバイダとしてサポートされている AppCards で必要な機能を設定します。この関数が呼び出されると、指定された ID に対応する AppCard はアクティブと見なされます。
fun onAppCardRemoved(String)
fun onAppCardContextChanged(String, AppCardContext)
AppCardContext
を送信するときに呼び出されます。保護された final メソッド
fun sendAppCardUpdate(AppCard)
fun sendAppCardComponentUpdate(String, Component)
EnforceFastUpdateRate
のタグが付いている場合、更新は直ちに送信されます。よくある質問
サンプル実装はどこにありますか?