Medya uygulamalarına derin bağlantıları entegre etme

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ı:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
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"