Bu belgenin amacı, üçüncü taraf uygulama geliştiricilerin AAOS medya uygulamalarına nasıl derin bağlantılar ekleyebileceğini açıklamaktır. Medya derin bağlantıları, AAOS medya uygulamalarını mobil cihazda olduğu gibi derin bağlantılar üzerinden açmanızı sağlar.
Desteklenen sürümler
Desteklenen en son sürümü almak için en son Derleme Yapıları'na bakın.
CarMediaApp.apk
TestMediaApp.apk
İşleyiş şekli
AAOS'te bir derin bağlantı açıldığında, ilgili şemayı işleyen medya uygulaması açılır. Ardından medya uygulaması, URL'nin kodunu çözerek bağlantıdaki bilgilerle bir medya intent'i oluşturur ve bu intent'i kullanarak medya ekranını açar.
Yeni intent'leri ve yeni ekstraları desteklemek için uygulama:
Medya tarafından işlenebilecek intent'lerin güncellenmiş bir biçimini üçüncü taraf geliştiricilere sağlar. Böylece geliştiriciler, intent aracılığıyla medyaya gerekli bilgileri gönderebilir.
Üçüncü taraf uygulamalarından gelen ve belirli bir medya öğesi veya arama sorgusu içeren intent'leri işler ve ardından Medya'da istenen bilgileri içeren bir sayfa açar.
Üçüncü taraf geliştiriciler, uygulamalarının web URI intent'leri tarafından çağrılabilmesi ve gerekli bilgileri bir intent aracılığıyla medyaya gönderebilmesi için uygulamalarını güncellemekten sorumludur.
Üçüncü taraf uygulamaları için şart
TestMediaApp
uygulamasındaki TmaTrampolineActivity
, örnek olarak verilmiştir.
1. Adım
Geliştiricilerin TestMediaApp
'te TmaTrampolineActivity
'e benzer bir etkinliği olmalıdır. Bu etkinliğin derin bağlantı oluşturması için manifest'te 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ışacağından emin olmak için intent 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 Media uygulaması, bağlantıdaki bilgileri alır ve Media için bir intent oluşturur.
Medya iki işlevi destekler. İlk işlev, belirli bir medya öğesini içeren bir medya öğesini açmak, ikinci işlev ise bir arama sorgusunun sonuçlarını göstermektir. Medya öğesi kimliği veya arama sorgusu dizesi intent ekstrasına dahil edilmelidir.
Amaç bilgileri
Geliştiricilerin bu özelliği kullanabilmesi için Intent işlemini (ACTION_MEDIA_TEMPLATE_V2
) desteklemek üzere Media'nın en son sürümünü yüklemesi gerekir. Intent işlemi ve aşağıdaki intent ekstraları MediaIntentExtras.java
sınıfına dahildir. Bu ekstralar amaca eklenebilir.
Ek 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 birlikte 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 | Mevcut 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 öğesinin 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 değerlerinden biridir. Bu ek yalnızca EXTRA_KEY_SEARCH_QUERY ile kullanılmalıdır. Bu ekstra belirtilmezse arama sonuçları yüklendikten sonra başka işlem yapılmaz. |
Özel durumlar
Intent'e birlikte birden fazla ekstra eklenirse (ör. bu intent'e hem EXTRA_KEY_MEDIA_ID
hem de EXTRA_KEY_SEARCH_QUERY
dahil edilirse) mevcut uygulama ilk olarak medya kimliğini işler ve medya yalnızca medya kimliği boş olduğunda 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, istenen 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"