שילוב קישורי עומק באפליקציות מדיה

במסמך הזה נסביר איך מפתחי אפליקציות של צד שלישי יכולים להוסיף קישורים עמוקים לאפליקציות מדיה ב-AAOS. קישורי עומק למדיה מאפשרים לכם לפתוח אפליקציות מדיה של AAOS באמצעות קישורי עומק, בדיוק כמו במכשיר נייד.

גרסאות נתמכות

כדי לקבל את הגרסה העדכנית הנתמכת, אפשר לעיין בארטיפקטים של Build העדכניים.

  • CarMediaApp.apk
  • TestMediaApp.apk

איך זה עובד

כשפותחים קישור עומק ב-AAOS, הוא פותח את אפליקציית המדיה שמטפלת בסכימה הספציפית. אפליקציית המדיה מפענחת את כתובת ה-URL, יוצרת כוונת מדיה עם המידע בקישור הזה ואז משתמשת בכוונת הזו כדי לפתוח את מסך המדיה.

ההטמעה לתמיכה בכוונות חדשות ובתוספים חדשים:

  • מספק פורמט מעודכן של הכוונות שאפשר לטפל בהן באמצעות Media למפתחי צד שלישי, כדי שהם יוכלו לשלוח את המידע הנדרש באמצעות הכוונה אל Media.

  • האפליקציה מטפלת בכוונות מאפליקציות של צד שלישי שמכילות פריט מדיה ספציפי או שאילתת חיפוש, ואז פותחת דף עם המידע המבוקש ב'מדיה'.

מפתחים של אפליקציות צד שלישי אחראים לעדכן את האפליקציה שלהם כך שאפשר יהיה להפעיל אותה באמצעות כוונות של URI באינטרנט ולשלוח את המידע הדרוש למדיה באמצעות כוונה.

דרישות לגבי אפליקציות של צד שלישי

האפליקציה TmaTrampolineActivity ב-TestMediaApp היא דוגמה.

שלב 1

המפתחים צריכים לעסוק בפעילות שדומה לTmaTrampolineActivity בTestMediaApp. כדי ליצור קישור עומק, צריך להוסיף מסנן Intent לפעילות הזו בקובץ המניפסט. מסנן ה-Intent הזה צריך לכלול את כל כתובות ה-URL שיש לטפל בהן, כמו שמתואר במאמר הוספת מסנני Intent לקישורים נכנסים.

מומלץ להוסיף למסנן הכוונות את הסכימות והמארחים שבהם משתמשת האפליקציה לטלפון, כדי לוודא שקישורי העומק פועלים בכל הפלטפורמות.

<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 כדי לתמוך בפעולת Intent, ‏ ACTION_MEDIA_TEMPLATE_V2. הפעולה Intent והתוספים הבאים של Intent כלולים במחלקה MediaIntentExtras.java. אפשר להוסיף את התוספים האלה לכוונה.

שם נוסף ערך תיאור
EXTRA_KEY_MEDIA_COMPONENT מחרוזת עבור componentName המפתח שמשמש כשדה מחרוזת נוסף עם ACTION_MEDIA_TEMPLATE_V2 כדי לציין את MediaBrowserService שבו המשתמש רוצה להפעיל את המדיה. אם לא מציינים מקור מדיה, מקור המדיה הפעיל ייפתח.
EXTRA_KEY_MEDIA_ID מזהה מדיה מפתח שמשמש כשדה מחרוזת נוסף עם ACTION_MEDIA_TEMPLATE_V2 מציין את פריט המדיה שצריך להציג בתצוגה Browse. המזהה צריך להיות זהה למזהים שמשמשים ב-MediaBrowserServiceCompat API.
EXTRA_KEY_SEARCH_QUERY שאילתת חיפוש המפתח שמשמש כשדה מחרוזת נוסף עם ACTION_MEDIA_TEMPLATE_V2 כדי לציין את שאילתת החיפוש שתישלח ל-MediaBrowserService הנוכחי או לזה שצוין עם EXTRA_KEY_MEDIA_COMPONENT
EXTRA_KEY_SEARCH_ACTION

מספר שלם:

  • ‫0: EXTRA_VALUE_NO_SEARCH_ACTION
  • ‫1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
מפתח שמשמש כשדה int extra עם ACTION_MEDIA_TEMPLATE_V2 כדי לציין את הפעולה שהמדיה תבצע אחרי שהשאילתה לחיפוש תיטען.

הערך הוא אחד מהערכים EXTRA_VALUE_NO_SEARCH_ACTION או EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. התוספת הזו צריכה לשמש רק עם EXTRA_KEY_SEARCH_QUERY.

אם לא מציינים את התוסף הזה, לא מתבצעת פעולה נוספת אחרי טעינת תוצאות החיפוש.

מקרים מיוחדים

אם כמה תוספים מתווספים יחד ל-Intent, למשל אם גם EXTRA_KEY_MEDIA_ID וגם EXTRA_KEY_SEARCH_QUERY כלולים ב-Intent הזה, ההטמעה הנוכחית מטפלת קודם במזהה המדיה, ורק אם מזהה המדיה ריק, המדיה מריצה את שאילתת החיפוש.

בדיקה

אחרי שמשלימים את השילוב של אפליקציית המדיה של צד שלישי, משתמשים בפקודה adb כדי לשלוח קישור עומק. קובץ המדיה ייפתח עם המידע הרצוי. לדוגמה, הפקודה הזו עבור TestMediaApp:

adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"