Чтобы создать 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 и определяет разрешение в зависимости от версии API Android системы.Использование строкового ресурса работает только при сборке с помощью Gradle. При использовании Soong укажите явную строку со значением строкового ресурса в соответствии с соответствующим квалификатором ресурса.
( по умолчанию )
android:grantUriPermissions="false"( по умолчанию )
android:forceUriPermissions="false"Чтобы избежать непредвиденных результатов, поставщику необходимо определить только один орган власти в
android:authorities.Объявите фильтр намерений на основе действий,
com.android.car.appcard.APP_CARD_PROVIDER
Расширить AppCardContentProvider
В этом разделе описываются переопределенные и защищенные окончательные методы.
Переопределение методов
val authority: Stringandroid:authorities .fun onCreate(): Booleansuper.onCreate() . Используйте этот метод для настройки функциональности, которая может потенциально вызвать задержку, если настроена при запросе AppCard.val appCardIds: Listfun onAppCardAdded(String, AppCardContext): AppCardAppCardContext , которые содержат подсказки о том, как отображается AppCard.Используйте этот метод для настройки любой функциональности, требуемой AppCards, поддерживаемыми в качестве поставщика. После вызова этой функции AppCard, соответствующий данному идентификатору, считается активным.
fun onAppCardRemoved(String)fun onAppCardContextChanged(String, AppCardContext)AppCardContext .Защищенные конечные методы
fun sendAppCardUpdate(AppCard)fun sendAppCardComponentUpdate(String, Component)EnforceFastUpdateRate , то обновление отправляется немедленно.Часто задаваемые вопросы
Где примеры реализации?