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çların kullanımına sunun. Her kullanıcının uygulamanızdan yararlanabilmesi için her iki durumda da uygun tek bir uygulama mimarisi kullanın.

Arabalar için Android nedir?

Arabalara yönelik bir medya uygulaması, kullanıcıların dijital hayatlarını arabalarıyla sorunsuz bir şekilde birbirine bağlamaları için bir yol sunabilir. Telefon için de aynı uygulamaları otomobillerde de kullanılabilecek şekilde genişleterek daha iyi bir kullanıcı deneyimi oluşturursunuz. Bunu, Android Auto veya Android Automotive OS ile entegre ederek yapabilirsiniz.

Arabalara yönelik Android uygulamaları, her şeyden önce sürücünün dikkatini dağıtmamalıdır. Sesli komutlar gibi en iyi uygulamaları ve son derece pratik bir görsel tasarım kullanarak dikkat dağıtıcı unsurları en aza indirebilirsiniz. Bu şekilde, medya uygulamanız yalnızca alakalı olduğunda sürücüye zamanında bilgi gösterebilir ve yaygın görevler için tahmin edilebilir kalıplar kullanabilir.

Android Auto

Android Auto, Android Auto uygulamasına ve uyumlu bir araca veya yan sanayi stereo sisteme sahip Android telefonlara sahip kullanıcılar için sürücü için optimize edilmiş uygulama deneyimi sağlar. Telefonlarını bağlayarak uygulamanızı doğrudan arabalarının ekranında kullanabilirler. Android Auto'nun sürücüye göre optimize edilmiş arayüz görüntülemek için kullandığı hizmetler oluşturarak Android Auto'nun telefon uygulamanıza bağlanmasını sağlarsınız.

Android Automotive OS

Android Automotive OS, araçlarda yerleşik olarak bulunan Android tabanlı bir bilgi-eğlence sistemidir. Arabanın sistemi, sürüş için optimize edilmiş, Android destekli bağımsız bir cihazdır. Android Automotive OS ile kullanıcılar uygulamanızı telefonları yerine doğrudan arabaya yüklerler.

Desteklenen uygulama kategorileri

Medya uygulamaları, kullanıcıların arabada müzik, radyo, sesli kitaplar ve diğer ses içeriklerine göz atıp bunları çalmasına olanak tanır. Daha fazla bilgi için Arabalar için ses çalma uygulamaları oluşturma konusuna bakın. Daha fazla bilgiyi Arabalar için medya uygulamaları oluşturma bölümünde de bulabilirsiniz.

Medya uygulamaları, MediaLibraryService ve MediaSession kullanılarak oluşturulur. Android Automotive OS'te, Görünümler veya Oluşturma'yı kullanarak oturum açma ve ayar ekranları da (park halindeyken kullanım için) oluşturabilirsiniz.

Video uygulamaları, kullanıcıların araba park ettiği sırada video yayınlarını izlemesini sağlar. Bu uygulamaların temel amacı akışlı videoları görüntülemektir. Bu uygulamalar, Görünümler veya Oluşturma kullanılarak oluşturulur. Daha fazla bilgi için Android Automotive OS için video oynatma uygulamaları oluşturma bölümüne bakın. Daha fazla bilgiyi Android Automotive OS için video uygulamaları oluşturma bölümünde bulabilirsiniz.

Arabalar için ses çalma uygulamaları oluşturma

Bu kılavuzda, halihazırda bir temel medya oynatma uygulamanızın olduğu varsayılmıştır. Yoksa başlamak için Temel medya oynatıcı uygulaması oluşturma bölümüne gidin.

Bu kılavuzda, yapmanız gerekenler hakkında bilgi edinebilir, özel rehberliğe sahip diğer kaynaklara bağlantılar da ekledik.

Oynatma bileşenleri

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

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üzlerin ve sınıfların paylaşılması sayesinde birkaç basit şekilde birbirine bağlanır.
Şekil 1: Medya uygulaması bileşenleri

Daha fazla bilgi için Oynatma bileşenleri konusuna bakın.

MediaLibraryService ve MediaLibrarySession uygulayın

MediaLibraryService, medya kitaplığınıza erişim izni vermek ve hizmet sunmak için standartlaştırılmış bir API sunar. Medya uygulamanıza Android Auto veya Android Automotive OS desteği eklerken bu platform gereklidir. Bunun nedeni, bu platformların medya kitaplığınız için kendi sürücü açısından güvenli kullanıcı arayüzlerini sağlamasıdır. MediaLibraryService uygulama ve kullanma hakkında daha fazla bilgi için MediaLibraryService ile içerik sunma bölümüne bakın.

Oynatma kontrolleri için bir medya oturumu kullanın. MediaSession API, bir ses veya video oynatıcı ile etkileşim için evrensel bir yol sunar. Jetpack Media3 kitaplığı, içerik tarama API'leri eklemek için MediaSession kapsamını genişleten MediaLibrarySession öğesini içerir.

Bir medya oturumunu oynatıcıya bağlamak, uygulamanın medya oynatma için harici olarak reklam vermesine 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 reklam yayınlama ve MediaLibrarySession kullanma konularına bakın.

Medya oturumunuz en azından aşağıdaki oynatıcı komutlarını desteklediğini beyan etmelidir:

Oynatma kontrollerini etkinleştirme kılavuzunda, arabalardaki 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ığı isterler. Bu da onGetLibraryRoot() geri çağırma yöntemini tetikler. Kitaplığınıza erişim izni vermek için bir kök medya öğesini hızlıca geri döndürebilirsiniz. Android Auto veya Android Automotive OS, içerik kitaplığınızın daha derin düzeylerine göz atmaya çalıştığında onGetChildren() geri çağırma yöntemi çağrılır.

Bu platformlar, içerik kitaplığınızın nasıl yapılandırılacağı konusunda ek sınırlar uygular. İçerik kitaplığınızın görüntülenme şeklini özelleştirmeyle ilgili ayrıntılar için Medya tarayıcı hizmetinizi oluşturma kılavuzuna bakın.

Android Auto için destek beyanı

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 açıklayan bir XML dosyasına başvuruda bulunur. Bir 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ğe sahip olmalıdır:

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

Android Automotive OS için destek beyanı

Uygulamanızdaki mantığın tamamı otomotiv uygulamalarıyla paylaşılamayacağından bir otomotiv modülü oluşturmanız gerekir. Manifest gibi Android Automotive OS'in bazı bileşenlerinin platforma özgü gereksinimleri vardır. 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 şu adımları uygulayın:

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

    Android Automotive OS'i destekleyen tüm arabalar Android 9 (API düzeyi 28) veya sonraki sürümlerde çalışır. Bu nedenle, bu değerin seçilmesi tüm uyumlu araçları hedefler.

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

Modülünüzü Android Studio'da oluşturduktan sonra yeni otomotiv modülünüzde AndroidManifest.xml öğesini 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'i desteklediğini belirten bir uses-feature öğesi bulunur. Manifest'te herhangi bir etkinlik olmadığını unutmayın.

Ayarlar veya oturum açma etkinlikleri uyguluyorsanız bunları buraya ekleyin. Bu etkinlikler, açık amaçlar kullanılarak sistem tarafından tetiklenir ve Android Automotive OS uygulamanız için manifest dosyasında beyan ettiğiniz bu etkinliklerdir.

Ayarları veya oturum açma etkinliklerini ekledikten sonra application öğesinde android:appCategory="audio" özelliğini ayarlayıp 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 özelliklerin açıkça required="false" olarak ayarlanması, uygulamanızın Automotive OS cihazlarındaki mevcut donanım özellikleriyle çakışmamasını sağlar.

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ına yöneliktir.

Bir 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çeriği ekleyin:

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

Amaç filtreleri

Android Automotive OS, medya uygulamanızdaki etkinlikleri tetiklemek için açık niyetler kullanır. Manifest dosyasına CATEGORY_LAUNCHER veya ACTION_MAIN amaç filtresi olan etkinlikleri eklemeyin.

Aşağıdaki örnekte gösterilene benzer 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 tanımlayın.

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

Diğer adımlar

Artık Android Auto ve Android Automotive OS için bir uygulamanız olduğuna göre, sürüş sırasında daha güvenli bir şekilde kullanılacak şekilde optimize etmek isteyebilirsiniz. Güvenli ve rahat bir kullanıcı deneyimi sağlamaya yardımcı olacak daha fazla öneri için Sesli işlemler, Dikkat dağıtıcı önlemler ve Hata işleme teknik kılavuzlarına göz atın.

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

Video uygulamaları, arabalardaki 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 konularında açıklanan şekilde video uygulamalarına yönelik bazı özel gereksinimleri bilmeniz gerekir. Aşağıdaki talimatları uygulamanız gerekir.

Uygulamanızı bir 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, manifest dosyanızın application öğesine XML dosyasına referans veren aşağıdaki meta-data öğesini ekleyin:

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