이 문서에서는 서드 파티 (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단계
이 활동에서 Media 앱은 링크에서 정보를 가져와 Media에 대한 인텐트를 만듭니다.
Media는 두 가지 함수를 지원합니다. 첫 번째 함수는 특정 미디어 항목이 포함된 미디어 항목을 열고 두 번째 함수는 검색어의 결과를 표시합니다. 미디어 항목 ID 또는 검색어 문자열이 인텐트 extra에 포함되어야 합니다.
인텐트 정보
이 기능을 사용하려면 개발자가 인텐트 작업 ACTION_MEDIA_TEMPLATE_V2
를 지원하는 최신 버전의 Media를 설치해야 합니다. 인텐트 작업과 다음 인텐트 추가 항목은 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로 지정된 MediaBrowserService에 전송할 검색어를 지정하는 키입니다. |
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"