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

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

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