Este documento descreve como desenvolvedores de apps de terceiros (3P) podem adicionar links diretos a apps de mídia do AAOS. Com os links diretos de mídia, é possível 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 compatível, 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. Em seguida, 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 novos extras:
Fornece um formato atualizado das intents que podem ser processadas pela mídia para desenvolvedores terceirizados. Assim, eles podem enviar as informações necessárias pela intent para a mídia.
Processa as intents de apps de terceiros que contêm um item de mídia específico ou uma consulta de pesquisa e abre uma página com as informações solicitadas na mídia.
Os desenvolvedores terceirizados são responsáveis por atualizar o app para que ele possa ser invocado pelas intents de URI da Web e enviar as informações necessárias à mídia por uma intent.
Requisito 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 que o app da versão para smartphone usa 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 recupera as informações do link e cria uma intent para a mídia.
A mídia é compatível com duas funções. A primeira função é abrir 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 do intent.
Informações de 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 estã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 especificado, a origem de mídia ativa é aberta. |
EXTRA_KEY_MEDIA_ID | ID da mídia | Chave usada como um campo extra de string com ACTION_MEDIA_TEMPLATE_V2 para especificar o item de mídia que deve 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 | Número inteiro:
|
Chave usada como um campo extra de número inteiro 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 é um de EXTRA_VALUE_NO_SEARCH_ACTION ou EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Esse extra só deve 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 juntos, como EXTRA_KEY_MEDIA_ID
e EXTRA_KEY_SEARCH_QUERY
, a implementação atual 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"