Целью этого документа является описание того, как сторонние (3P) разработчики приложений могут добавлять глубокие ссылки в мультимедийные приложения AAOS. Глубокие ссылки на мультимедиа позволяют открывать приложения AAOS Media через глубокие ссылки так же, как на мобильном устройстве.
Поддерживаемые версии
Чтобы получить последнюю поддерживаемую версию, см. последние артефакты сборки .
-
CarMediaApp.apk
-
TestMediaApp.apk
Как это работает
Когда в AAOS открывается глубокая ссылка, открывается медиа-приложение, которое обрабатывает конкретную схему. Затем медиа-приложение декодирует URL-адрес, создавая медиа-намерение с информацией в этой ссылке, а затем используя это намерение для открытия медиа-экрана.
Реализация для поддержки новых намерений и новых дополнений:
Предоставляет обновленный формат намерений, которые могут обрабатываться носителем для 3P-разработчиков, чтобы они могли отправлять необходимую информацию через намерение в медиа.
Обрабатывает намерения 3P-приложений, которые содержат определенный медиа-элемент или поисковый запрос, а затем открывает страницу с запрошенной информацией в Media.
Разработчики 3P несут ответственность за обновление своего приложения, чтобы приложение можно было вызывать с помощью намерений веб-URI и отправлять необходимую информацию в носитель через намерение.
Требования к 3P-приложениям
TmaTrampolineActivity
в приложении TestMediaApp
приведен в качестве примера.
Шаг 1
У разработчиков должна быть активность, аналогичная TmaTrampolineActivity
в TestMediaApp
. Для глубокой ссылки этому действию необходим фильтр намерений в манифесте. Этот фильтр намерений должен включать все URL-адреса, которые будут обрабатываться, как описано в разделе Добавление фильтров намерений для входящих ссылок .
Мы предлагаем включить в фильтр намерений схемы и хосты, которые использует приложение телефонной версии, чтобы гарантировать работу глубоких ссылок на разных платформах.
<activity android:name=".automotive.TmaTrampolineActivity"
android:exported="true">
<intent-filter android:label="TmaTrampolineActivity_label">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="app"
android:host="com.android.car.media.testmediaapp"/>
</intent-filter>
</activity>
Шаг 2
В этом действии приложение «Медиа» извлекает информацию из ссылки и создает намерение для мультимедиа.
Медиа поддерживает две функции. Первая функция — открыть элемент мультимедиа с определенным элементом мультимедиа, а вторая — показать результаты поискового запроса. Идентификатор медиа-элемента или строка поискового запроса должны быть включены в дополнительное намерение.
Информация о намерении
Чтобы использовать эту функцию, разработчикам необходимо установить самую последнюю версию носителя для поддержки действия Intent, ACTION_MEDIA_TEMPLATE_V2
. Действие Intent и следующие дополнительные функции Intent включены в класс MediaIntentExtras.java
. Эти дополнения могут быть добавлены к намерению.
Дополнительное имя | Ценить | Описание |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | Строка для имени компонента | Ключ, используемый в качестве дополнительного поля строки с ACTION_MEDIA_TEMPLATE_V2 для указания службы MediaBrowserService, в которой пользователь хочет запустить носитель. Если не указано, открывается активный источник мультимедиа. |
EXTRA_KEY_MEDIA_ID | Идентификатор носителя | Ключ, используемый в качестве дополнительного поля строки с ACTION_MEDIA_TEMPLATE_V2, указывает элемент мультимедиа, который должен отображаться в представлении «Обзор» . Должен соответствовать идентификаторам, используемым в API MediaBrowserServiceCompat. |
EXTRA_KEY_SEARCH_QUERY | Поисковый запрос | Ключ, используемый в качестве дополнительного поля строки с ACTION_MEDIA_TEMPLATE_V2 для указания поискового запроса для отправки либо в текущий MediaBrowserService, либо в тот, который указан с помощью EXTRA_KEY_MEDIA_COMPONENT. |
EXTRA_KEY_SEARCH_ACTION | Целое число:
| Ключ, используемый в качестве дополнительного поля int с ACTION_MEDIA_TEMPLATE_V2 для указания действия, которое медиа-файл должен выполнить после загрузки поискового запроса. Значением может быть EXTRA_VALUE_NO_SEARCH_ACTION или EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Это дополнение следует использовать только с EXTRA_KEY_SEARCH_QUERY. Если это дополнение не указано, то после загрузки результатов поиска никаких дальнейших действий не предпринимается. |
Особые случаи
Если к намерению добавляется несколько дополнительных элементов вместе, например, EXTRA_KEY_MEDIA_ID
и EXTRA_KEY_SEARCH_QUERY
включены в это намерение, текущая реализация сначала обрабатывает идентификатор носителя, и только когда идентификатор носителя пуст, носитель запускает поисковый запрос.
Тест
После завершения интеграции медиа-приложения 3P используйте команду adb
, чтобы отправить глубокую ссылку. СМИ открываются с желаемой информацией. Например, эта команда для TestMediaApp
:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"