Bu belgede, üçüncü taraf (3P) uygulama geliştiricilerin AAOS medya uygulamalarına derin bağlantıları nasıl ekleyebileceği açıklanmaktadır. Medya derin bağlantıları, AAOS medya uygulamalarını mobil cihazlarda olduğu gibi derin bağlantılar aracılığıyla açmanıza olanak tanır.
Desteklenen sürümler
Desteklenen en son sürümü edinmek için en son Build Artifacts'e bakın.
CarMediaApp.apk
TestMediaApp.apk
İşleyiş şekli
AAOS'te bir derin bağlantı açıldığında, belirli şemayı işleyen medya uygulaması açılır. Medya uygulaması daha sonra URL'yi kodunu çözerek bu bağlantıdaki bilgileri içeren bir medya intent'i oluşturur ve medya ekranını açmak için bu intent'i kullanır.
Yeni amaçları ve yeni ekstraları desteklemek için uygulama:
Medya'nın işleyebileceği amaçların güncellenmiş bir biçimini sağlar. Böylece üçüncü taraf geliştiriciler, amaç aracılığıyla Medya'ya gerekli bilgileri gönderebilir.
Belirli bir medya öğesi veya arama sorgusu içeren üçüncü taraf uygulamalarından gelen amaçları işler ve ardından Media'da istenen bilgileri içeren bir sayfa açar.
3. taraf geliştiriciler, uygulamalarının web URI amaçlarıyla çağrılabilmesi ve gerekli bilgileri bir amaç aracılığıyla Medya'ya gönderebilmesi için uygulamalarını güncellemekle sorumludur.
3. taraf uygulamaları için şart
TestMediaApp
uygulamasındaki TmaTrampolineActivity
, örnek olarak verilmiştir.
1. Adım
Geliştiriciler, TestMediaApp
içinde TmaTrampolineActivity
benzeri bir etkinliğe sahip olmalıdır. Derin bağlantı oluşturmak için bu etkinliğin manifestte bir intent filtresi olması gerekir. Bu intent filtresi, Gelen bağlantılar için intent filtreleri ekleme bölümünde açıklandığı gibi işlenecek tüm URL'leri içermelidir.
Derin bağlantıların platformlar arasında çalışmasını sağlamak için amaç filtresinin, telefon sürümü uygulamasının kullandığı şemaları ve ana makineleri içermesini öneririz.
<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. Adım
Bu etkinlikte, Medya uygulaması bağlantıdaki bilgileri alır ve medyaya yönelik bir amaç oluşturur.
Medya iki işlevi destekler. İlk işlev, belirli bir medya öğesiyle medya öğesi açmak, ikinci işlev ise arama sorgusunun sonuçlarını göstermektir. Medya öğesi kimliği veya arama sorgusu dizesi, amaç ekstrasına dahil edilmelidir.
Amaç bilgileri
Bu özelliği kullanmak için geliştiricilerin, Intent işlemini destekleyen Medya'nın en son sürümünü (ACTION_MEDIA_TEMPLATE_V2
) yüklemesi gerekir. Intent
işlemi ve aşağıdaki intent ekstraları, MediaIntentExtras.java
sınıfına dahildir. Bu ekstralar amaca eklenebilir.
Ekstra ad | Değer | Açıklama |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | componentName için dize | Kullanıcının medyayı başlatmak istediği MediaBrowserService'i belirtmek için ACTION_MEDIA_TEMPLATE_V2 ile dize ek alanı olarak kullanılan anahtar. Belirtilmediğinde etkin medya kaynağı açılır. |
EXTRA_KEY_MEDIA_ID | Medya kimliği | ACTION_MEDIA_TEMPLATE_V2 ile dize ek alanı olarak kullanılan anahtar, Göz at görünümünde gösterilmesi gereken medya öğesini belirtir. MediaBrowserServiceCompat API'de kullanılan kimliklerle eşleşmelidir. |
EXTRA_KEY_SEARCH_QUERY | Arama sorgusu | Geçerli MediaBrowserService'e veya EXTRA_KEY_MEDIA_COMPONENT ile belirtilene gönderilecek arama sorgusunu belirtmek için ACTION_MEDIA_TEMPLATE_V2 ile dize ek alanı olarak kullanılan anahtar |
EXTRA_KEY_SEARCH_ACTION | Tam sayı:
|
Arama sorgusu yüklendikten sonra Medya'nın gerçekleştireceği işlemi belirtmek için ACTION_MEDIA_TEMPLATE_V2 ile int ek alanı olarak kullanılan anahtar.
Değer, EXTRA_VALUE_NO_SEARCH_ACTION veya EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH olmalıdır. Bu ek bilgi yalnızca EXTRA_KEY_SEARCH_QUERY ile kullanılmalıdır. Bu ek belirtilmezse arama sonuçları yüklendikten sonra başka bir işlem yapılmaz. |
Özel durumlar
Niyetinize birden fazla ek özellik eklenirse (ör. hem EXTRA_KEY_MEDIA_ID
hem de EXTRA_KEY_SEARCH_QUERY
bu niyete dahil edilirse) mevcut uygulama önce medya kimliğini işler ve yalnızca medya kimliği boş olduğunda Medya, arama sorgusunu çalıştırır.
Test
Üçüncü taraf medya uygulamasının entegrasyonu tamamlandıktan sonra derin bağlantı göndermek için adb
komutunu kullanın. Medya, istediğiniz bilgilerle açılır. Örneğin, TestMediaApp
için şu komut:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"