Medya uygulamanızın kapsamını Arabalar için Android'i içerecek şekilde genişletin

Uygulamanızı Android Auto veya Android Automotive OS çalıştıran araçlara taşıyın. Her kullanıcının uygulamanızdan keyif alabilmesi için her iki durumda da işe yarayan tek bir uygulama mimarisi kullanın.

Arabalar için Android nedir?

Arabalar için medya uygulamaları, kullanıcıların dijital yaşamlarını arabalarına sorunsuz bir şekilde bağlamalarına olanak tanıyabilir. Telefonlarda kullanılan uygulamaları otomobillerde de kullanıma sunarak daha iyi bir kullanıcı deneyimi oluşturabilirsiniz. Bunu Android Auto veya Android Automotive OS ile entegre ederek yapabilirsiniz.

Arabalar için Android uygulamaları, her şeyden önce sürücünün dikkatinin dağılmaması için tasarlanmalıdır. Sesli komutlar ve çok pratik bir görsel tasarım gibi en iyi uygulamaları uygulayarak dikkat dağıtıcı unsurları en aza indirebilirsiniz. Bu sayede medya uygulamanız, sürücüye yalnızca alakalı olduğunda zamanında bilgi gösterebilir ve sık kullanılan görevler için tahmin edilebilir kalıplar kullanabilir.

Android Auto

Android Auto, Android Auto uygulaması yüklü bir Android telefonu ve uyumlu bir araç veya yan sanayi ses sistemi olan kullanıcılara sürücüye göre optimize edilmiş bir uygulama deneyimi sunar. Telefonlarını bağlayarak uygulamanızı doğrudan araçlarının ekranında kullanabilirler. Android Auto'nun sürücüye sürücüye özelleştirilmiş bir arayüz göstermek için kullandığı hizmetleri oluşturarak Android Auto'nun telefon uygulamanıza bağlanmasını sağlarsınız.

Android Automotive OS

Android Automotive OS, araçlara yerleştirilmiş Android tabanlı bir bilgi-eğlence sistemidir. Aracın sistemi, sürüş için optimize edilmiş bağımsız bir Android destekli cihazdır. Android Automotive OS ile kullanıcılar uygulamanızı telefonlarına değil doğrudan arabaya yükler.

Desteklenen uygulama kategorileri

Medya uygulamaları, kullanıcıların araba içinde müzik, radyo, sesli kitap ve diğer ses içeriklerine göz atmasına ve bu içerikleri oynatmasına olanak tanır. Daha fazla bilgi için Arabalar için ses çalma uygulamaları oluşturma başlıklı makaleyi inceleyin. Daha fazla bilgiyi Arabalar için medya uygulamaları oluşturma başlıklı makalede de bulabilirsiniz.

Medya uygulamaları MediaLibraryService ve MediaSession kullanılarak geliştirilir. Android Automotive OS'te, Görünümler veya Oluştur'u kullanarak oturum açma ve ayarlar ekranları (park halindeyken kullanılmak üzere) da oluşturabilirsiniz.

Video uygulamaları, kullanıcıların araç park halindeyken canlı videoları görüntülemelerine olanak tanır. Bu uygulamaların temel amacı, canlı video yayınlamaktır. Bu uygulamalar, Görünümler veya Oluştur kullanılarak oluşturulur. Daha fazla bilgi için Android Automotive OS için video oynatma uygulamaları oluşturma başlıklı makaleyi inceleyin. Daha fazla bilgi için Android Automotive OS için video uygulamaları oluşturma başlıklı makaleyi inceleyin.

Arabalar için ses oynatma uygulamaları oluşturma

Bu kılavuzda, temel bir medya oynatma uygulamanız olduğu varsayılmaktadır. Aksi takdirde, başlamak için Temel medya oynatıcı uygulaması oluşturma başlıklı makaleyi inceleyin.

Bu kılavuzda, yapmanız gerekenler hakkında bilgi ve belirli yönergeler içeren diğer kaynakların bağlantıları yer almaktadır.

Oynatma bileşenleri

Media3, oynatma kullanım alanları için birkaç temel bileşen sunar. Önceki Android medya kitaplıklarıyla çalıştıysanız bu bileşenleri oluşturan sınıflar size tanıdık gelecektir.

Aşağıdaki şemada, bu bileşenlerin tipik bir uygulamada nasıl bir araya geldiği gösterilmektedir.

Media3 kullanan bir medya uygulamasının farklı bileşenleri, arayüzleri ve sınıfları paylaştıkları için birkaç basit yöntemle birbirine bağlanır.
Şekil 1: Medya uygulaması bileşenleri

Daha fazla bilgi için Oynatma bileşenleri bölümüne bakın.

MediaLibraryService ve MediaLibrarySession işaretlemelerini uygulama

MediaLibraryService, medya kitaplığınızı yayınlamak ve medya kitaplığınıza erişim izni vermek için standartlaştırılmış bir API sağlar. Bu platformlar, medya kitaplığınız için sürücü güvenliğini sağlayan kendi kullanıcı arayüzlerini sağladığından, medya uygulamanıza Android Auto veya Android Automotive OS desteği eklerken bu gereklidir. MediaLibraryService uygulama ve kullanma hakkında daha fazla bilgi için MediaLibraryService ile içerik yayınlama başlıklı makaleyi inceleyin.

Oynatma kontrolleri için medya oturumu kullanın. MediaSession API, ses veya video oynatıcıyla etkileşime geçmenin evrensel bir yolunu sağlar. Jetpack Media3 kitaplığı, içerikte gezinme API'leri eklemek için MediaSession'yi genişleten MediaLibrarySession'ü içerir.

Bir medya oturumunu oynatıcıya bağlamak, uygulamanın medya oynatmayı harici olarak tanıtmasına ve Android Auto, Android Automotive OS veya Google Asistan gibi harici kaynaklardan oynatma komutları almasına olanak tanır. Daha fazla bilgi için MediaSession kullanarak oynatmayı kontrol etme ve oynatma reklamı yapma ve MediaLibrarySession kullanma başlıklı makaleleri inceleyin.

Medya oturumunuz en azından aşağıdaki oynatıcı komutlarını desteklemelidir:

Oynatma kontrollerini etkinleştirme kılavuzunda, arabalarda oynatma kontrollerinizi özelleştirebileceğiniz yöntemler açıklanmaktadır.

Android Auto veya Android Automotive OS uygulamanıza bağlandığında görüntülenecek bir içerik kitaplığı ister. Bu, onGetLibraryRoot() geri çağırma yöntemini tetikler. Kitaplığınıza erişime izin vermek için bir kök medya öğesini hızlıca döndürebilirsiniz. onGetChildren() geri çağırma yöntemi, Android Auto veya Android Automotive OS içerik kitaplığınızın daha derin seviyelerine göz atmaya çalışırken çağrılır.

Bu platformlar, içerik kitaplığınızın yapısıyla ilgili ek sınırlamalar uygular. İçerik kitaplığınızın nasıl gösterileceğini özelleştirmeyle ilgili ayrıntılar için Medya tarayıcısı hizmetinizi oluşturma kılavuzunu inceleyin.

Android Auto desteğini beyan etme

Telefon uygulamanızın Android Auto'yu desteklediğini beyan etmek için aşağıdaki manifest girişini kullanın:

<application>
    ...
    <meta-data android:name="com.google.android.gms.car.application"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

Bu manifest girişi, uygulamanızın hangi otomotiv özelliklerini desteklediğini belirten bir XML dosyasını ifade eder. Medya uygulamanız olduğunu belirtmek için projenizdeki res/xml/ dizinine automotive_app_desc.xml adlı bir XML dosyası ekleyin. Bu dosya aşağıdaki içeriği içermelidir:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

Android Automotive OS için destek beyan etme

Uygulamanızdaki mantığın tamamı bir Automotive uygulamasıyla paylaşılamayacak olduğundan bir Automotive modülü oluşturmanız gerekir. Android Automotive OS'in bazı bileşenleri (ör. manifest) platforma özgü gereksinimlere sahiptir. Bu bileşenlerin kodunu, mobil uygulamanız için kullanılan kod gibi projenizdeki diğer kodlardan ayrı tutabilecek bir modül oluşturun.

Projenize otomotiv modülü eklemek için aşağıdaki adımları uygulayın:

  1. Android Studio'da Dosya > Yeni > Yeni Modül'ü tıklayın.
  2. Otomotiv Modülü'nü seçin ve İleri'yi tıklayın.
  3. Bir uygulama/kitaplık adı girin. Bu, Android Automotive OS'te kullanıcıların uygulamanız için gördüğü addır.
  4. Bir modül adı girin.
  5. Paket adını uygulamanızla eşleşecek şekilde ayarlayın.
  6. Minimum SDK için API 28: Android 9.0 (Pie)'i seçin ve ardından İleri'yi tıklayın.

    Android Automotive OS'i destekleyen tüm araçlar Android 9 (API seviyesi 28) veya sonraki sürümleri çalıştırır. Bu nedenle, bu değeri seçtiğinizde uyumlu tüm araçlar hedeflenir.

  7. Etkinlik yok'u seçin ve ardından Son'u tıklayın.

Android Studio'da modülünüzü oluşturduktan sonra yeni otomotiv modülünüzde AndroidManifest.xml'yi açın:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

</manifest>

application öğesinde bazı standart uygulama bilgilerinin yanı sıra Android Automotive OS desteğini beyan eden bir uses-feature öğesi bulunur. Manifest dosyasında beyan edilen etkinlik olmadığını unutmayın.

Ayarlar veya oturum açma etkinlikleri uygularsanız bunları buraya ekleyin. Bu etkinlikler, sistem tarafından açık intent'ler kullanılarak tetiklenir ve Android Automotive OS uygulamanız için manifest dosyasında tanımladığınız tek etkinliklerdir.

Herhangi bir ayar veya oturum açma etkinliği ekledikten sonra application öğesinde android:appCategory="audio" özelliğini ayarlayarak ve aşağıdaki uses-feature öğelerini ekleyerek manifest dosyanızı tamamlayın:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.media">

    <application
        android:allowBackup="true"
        android:appCategory="audio"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" />

    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />

    <uses-feature
        android:name="android.hardware.wifi"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.screen.landscape"
        android:required="false" />

</manifest>

Bu özellikleri açıkça required="false" olarak ayarlamak, uygulamanızın Automotive OS cihazlardaki mevcut donanım özellikleriyle çakışmasını önler.

Uygulamanızın Android Automotive OS'i desteklediğini beyan etmek için aşağıdaki manifest girişini kullanın:

<application>
    ...
    <meta-data android:name="com.android.automotive"
        android:resource="@xml/automotive_app_desc"/>
    ...
</application>

Bu manifest girişi, uygulamanızın desteklediği otomotiv özelliklerini açıklayan bir XML dosyasını ifade eder.

Medya uygulamanız olduğunu belirtmek için projenizdeki res/xml/ dizinine automotive_app_desc.xml adlı bir XML dosyası ekleyin. Bu dosyaya aşağıdaki içerikleri ekleyin:

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

Niyet filtreleri

Android Automotive OS, medya uygulamanızdaki etkinlikleri tetiklemek için açık intent'leri kullanır. Manifest dosyasına CATEGORY_LAUNCHER veya ACTION_MAIN intent filtresi içeren etkinlikler eklemeyin.

Aşağıdaki örnekteki gibi etkinlikler genellikle bir telefonu veya başka bir mobil cihazı hedefler. Bu etkinlikleri, Android Automotive OS uygulamanızı oluşturan modülde değil, telefon uygulamasını oluşturan modülde beyan edin.

<activity android:name=".MyActivity">
<intent-filter>
<!-- You can't use either of these intents for Android Automotive OS -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--
In their place, you can include other intent filters for any activities
that your app needs for Android Automotive OS, such as settings or
sign-in activities.
-->
</intent-filter>
</activity>

Sonraki adımlar

Android Auto ve Android Automotive OS için bir uygulamanız olduğuna göre, uygulamanızı sürüş sırasında daha güvenli bir şekilde kullanılacak şekilde optimize etmek için ek adımlar atabilirsiniz. Güvenli ve kullanışlı bir kullanıcı deneyimi sunmaya yardımcı olacak daha fazla öneri için Voice işlemleri, Dikkat dağıtıcı unsurlara karşı önlemler ve Hata işleme ile ilgili teknik kılavuzları inceleyin.

Android Automotive OS için video oynatma uygulamaları oluşturma

Video uygulamaları, araçlardaki medya uygulamalarından ayrı olarak sınıflandırıldığından Android Automotive OS için park edilmiş uygulamalar oluşturma ve Android Automotive OS için video uygulamaları oluşturma başlıklı makalelerde açıklanan video uygulamalarına yönelik belirli şartlardan haberdar olmanız gerekir. Aşağıdaki talimatları uygulamanız gerekir.

Uygulamanızı video uygulaması olarak işaretleme

Uygulamanızın videoyu desteklediğini belirtmek için projenizdeki res/xml/ dizinine automotive_app_desc.xml adlı bir XML dosyası ekleyin. Bu dosyaya aşağıdaki içeriği ekleyin:

<automotiveApp>
    <uses name="video"/>
</automotiveApp>

Ardından, manifestinizin application öğesine XML dosyasına atıfta bulunan aşağıdaki meta-data öğesini ekleyin:

<meta-data android:name="com.android.automotive"
    android:resource="@xml/automotive_app_desc"/>