이 문서에서는 서드 파티 (3P) 앱 개발자가 AAOS 미디어 앱에 딥 링크를 추가하는 방법을 설명합니다. 미디어 딥 링크를 사용하면 휴대기기에서와 마찬가지로 딥 링크를 통해 AAOS 미디어 앱을 열 수 있습니다.
지원되는 버전
지원되는 최신 버전을 확인하려면 최신 빌드 아티팩트를 참고하세요.
CarMediaApp.apk
TestMediaApp.apk
작동 방식
AAOS에서 딥 링크가 열리면 특정 스킴을 처리하는 미디어 앱이 열립니다. 그러면 미디어 앱이 URL을 디코딩하여 해당 링크의 정보로 미디어 인텐트를 만들고 이 인텐트를 사용하여 미디어 화면을 엽니다.
새 인텐트와 새 추가 데이터를 지원하는 구현은 다음과 같습니다.
미디어에서 처리할 수 있는 인텐트의 업데이트된 형식을 서드 파티 개발자에게 제공하여 인텐트를 통해 미디어에 필요한 정보를 보낼 수 있도록 합니다.
특정 미디어 항목이나 검색어를 포함하는 서드 파티 앱의 인텐트를 처리한 다음 미디어에서 요청된 정보가 포함된 페이지를 엽니다.
서드 파티 개발자는 앱이 웹 URI 인텐트에 의해 호출되고 인텐트를 통해 필요한 정보를 미디어에 전송할 수 있도록 앱을 업데이트해야 합니다.
서드 파티 앱 요구사항
TestMediaApp
앱의 TmaTrampolineActivity
은 예로 제공됩니다.
1단계
개발자는 TestMediaApp
에 TmaTrampolineActivity
와 유사한 활동이 있어야 합니다. 딥 링크를 사용하려면 이 활동에 매니페스트의 인텐트 필터가 필요합니다. 이 인텐트 필터에는 수신 링크의 인텐트 필터 추가에 설명된 대로 처리할 모든 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단계
이 활동에서 미디어 앱은 링크에서 정보를 가져와 미디어에 대한 인텐트를 만듭니다.
미디어는 두 가지 기능을 지원합니다. 첫 번째 함수는 특정 미디어 항목으로 미디어 항목을 여는 것이고 두 번째 함수는 검색어의 결과를 표시하는 것입니다. 미디어 항목 ID 또는 검색어 문자열이 인텐트 extra에 포함되어야 합니다.
인텐트 정보
이 기능을 사용하려면 개발자가 인텐트 작업 ACTION_MEDIA_TEMPLATE_V2
를 지원하는 최신 버전의 미디어를 설치해야 합니다. 인텐트 작업과 다음 인텐트 추가 기능은 MediaIntentExtras.java
클래스에 포함됩니다. 이러한 데이터는 인텐트에 추가할 수 있습니다.
추가 이름 | 값 | 설명 |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | componentName 문자열 | 사용자가 미디어를 시작하려는 MediaBrowserService를 지정하기 위해 ACTION_MEDIA_TEMPLATE_V2와 함께 문자열 추가 필드로 사용되는 키입니다. 지정하지 않으면 활성 미디어 소스가 열립니다. |
EXTRA_KEY_MEDIA_ID | 미디어 ID | ACTION_MEDIA_TEMPLATE_V2와 함께 문자열 추가 필드로 사용되는 키로, 탐색 뷰에 표시되어야 하는 미디어 항목을 지정합니다. MediaBrowserServiceCompat API에서 사용되는 ID와 일치해야 합니다. |
EXTRA_KEY_SEARCH_QUERY | 검색어 | ACTION_MEDIA_TEMPLATE_V2와 함께 문자열 추가 필드로 사용되어 현재 MediaBrowserService 또는 EXTRA_KEY_MEDIA_COMPONENT로 지정된 서비스에 전송할 검색어를 지정하는 키입니다. |
EXTRA_KEY_SEARCH_ACTION | 정수:
|
검색 쿼리가 로드된 후 미디어가 실행할 작업을 지정하기 위해 ACTION_MEDIA_TEMPLATE_V2와 함께 int 추가 필드로 사용되는 키입니다.
값은 EXTRA_VALUE_NO_SEARCH_ACTION 또는 EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH 중 하나입니다. 이 엑스트라는 EXTRA_KEY_SEARCH_QUERY와만 사용해야 합니다. 이 추가 항목이 지정되지 않으면 검색 결과가 로드된 후 추가 작업이 실행되지 않습니다. |
특수한 케이스
EXTRA_KEY_MEDIA_ID
와 EXTRA_KEY_SEARCH_QUERY
이 모두 이 인텐트에 포함되는 등 여러 추가 항목이 인텐트에 함께 추가되는 경우 현재 구현에서는 미디어 ID를 먼저 처리하고 미디어 ID가 비어 있는 경우에만 미디어가 검색어를 실행합니다.
테스트
서드 파티 미디어 앱의 통합이 완료되면 adb
명령어를 사용하여 딥 링크를 전송합니다. 원하는 정보가 포함된 미디어가 열립니다. 예를 들어 TestMediaApp
의 경우 다음 명령어를 사용합니다.
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"