Este documento tem como objetivo descrever como os desenvolvedores de apps de terceiros (3P) podem adicionar links direcionados a apps de mídia do AAOS. Os links diretos de mídia permitem abrir apps de mídia do AAOS da mesma forma que em um dispositivo móvel.
Versões compatíveis
Para conferir a versão mais recente com suporte, consulte os Artefatos de build mais recentes.
CarMediaApp.apk
TestMediaApp.apk
Como funciona
Quando um link direto é aberto no AAOS, ele abre o app de mídia que processa o esquema específico. O app de mídia decodifica o URL, criando uma intent de mídia com as informações desse link e usando essa intent para abrir a tela de mídia.
A implementação para oferecer suporte a novas intents e extras:
Fornece um formato atualizado das intents que podem ser processadas pela mídia para desenvolvedores terceirizados, para que eles possam enviar as informações necessárias pela intent.
Processa as intents de apps de terceiros que contêm um item de mídia específico ou uma consulta de pesquisa e, em seguida, abre uma página com as informações solicitadas em "Mídia".
Os desenvolvedores de terceiros são responsáveis por atualizar o app para que ele possa ser invocado pelas intents do URI da Web e enviar as informações necessárias para a mídia por uma intent.
Requisitos para apps de terceiros
O TmaTrampolineActivity
no app TestMediaApp
é fornecido como exemplo.
Etapa 1
Os desenvolvedores precisam ter uma atividade semelhante a TmaTrampolineActivity
em
TestMediaApp
. Para criar um link direto, essa atividade precisa de um filtro de intent no
manifesto. Esse filtro de intent precisa incluir todos os URLs a serem processados,
conforme descrito em Adicionar filtros de intent para links recebidos.
Sugerimos que o filtro de intent inclua os esquemas e hosts usados pela versão do app para celular para garantir que os links diretos funcionem em todas as plataformas.
<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>
Etapa 2
Nesta atividade, o app de mídia extrai as informações do link e cria uma intent para a mídia.
A mídia oferece suporte a duas funções. A primeira função é abrir um item de mídia com um item de mídia específico, e a segunda é mostrar os resultados de uma consulta de pesquisa. O ID do item de mídia ou a string de consulta de pesquisa precisa ser incluída no extra da intent.
Informações da intent
Para usar esse recurso, os desenvolvedores precisam instalar a versão mais recente da
mídia para oferecer suporte à ação de intent, ACTION_MEDIA_TEMPLATE_V2
. A ação
da intent e os extras de intent a seguir são incluídos na
classe MediaIntentExtras.java
. Esses extras podem ser adicionados à intent.
Nome extra | Valor | Descrição |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | String para componentName | Chave usada como um campo extra de string com ACTION_MEDIA_TEMPLATE_V2 para especificar o MediaBrowserService em que o usuário quer iniciar a mídia. Quando não for especificado, a origem de mídia ativa será aberta. |
EXTRA_KEY_MEDIA_ID | ID da mídia | Chave usada como um campo extra de string com ACTION_MEDIA_TEMPLATE_V2 especifica o item de mídia que precisa ser mostrado na visualização Procurar. Precisa corresponder aos IDs usados na API MediaBrowserServiceCompat. |
EXTRA_KEY_SEARCH_QUERY | Consulta de pesquisa | Chave usada como um campo extra de string com ACTION_MEDIA_TEMPLATE_V2 para especificar a consulta de pesquisa a ser enviada ao MediaBrowserService atual ou ao especificado com EXTRA_KEY_MEDIA_COMPONENT |
EXTRA_KEY_SEARCH_ACTION | Inteiro:
|
Chave usada como um campo extra int com ACTION_MEDIA_TEMPLATE_V2
para especificar a ação que a mídia vai realizar depois que a consulta de pesquisa for carregada.
O valor é EXTRA_VALUE_NO_SEARCH_ACTION ou EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Esse extra só pode ser usado com EXTRA_KEY_SEARCH_QUERY. Se esse extra não for especificado, nenhuma outra ação será tomada depois que os resultados da pesquisa forem carregados. |
Casos especiais
Se vários extras forem adicionados à intent, como
EXTRA_KEY_MEDIA_ID
e EXTRA_KEY_SEARCH_QUERY
incluídos nela,
a implementação atual vai processar o ID da mídia primeiro. Somente quando o ID
da mídia estiver vazio, a mídia vai executar a consulta de pesquisa.
Teste
Depois que a integração do app de mídia de terceiros for concluída, use um comando adb
para enviar
um link direto. A mídia é aberta com as informações desejadas. Por exemplo, este
comando para TestMediaApp
:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"