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

Uygulamanızı Android Auto veya Android Automotive OS'in kullanıldığı araçlara taşıyın. Her iki durumda da işe yarayan tek bir uygulama mimarisi kullanarak tüm kullanıcıların uygulamanızdan yararlanmasını sağlayın.

Arabalar için Android nedir?

Arabalar için bir medya uygulaması, kullanıcıların dijital yaşamlarını arabalarıyla sorunsuz bir şekilde bağlamalarına olanak tanıyabilir. Telefonda kullanılabilen uygulamaları otomobillerde de kullanılabilir hâle getirerek daha iyi bir kullanıcı deneyimi sunabilirsiniz. Bu işlemi Android Auto veya Android Automotive OS ile entegrasyon yaparak gerçekleştirebilirsiniz.

Arabalar için Android uygulamaları, her şeyden önce sürücünün dikkatini dağıtmamalıdır. Sesli komutları kullanma ve çok pratik bir görsel tasarım kullanma gibi en iyi uygulamaları izleyerek 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 yaygın görevler için tahmin edilebilir kalıplar kullanabilir.

Android Auto

Android Auto, Android Auto uygulaması yüklü bir Android telefonu ve uyumlu bir araba veya yan sanayi ürünü stereo sistemi olan kullanıcılara sürücü için optimize edilmiş bir uygulama deneyimi sunar. Kullanıcılar, telefonlarını bağlayarak uygulamanızı doğrudan araçlarının ekranında kullanabilir. Android Auto'nun, sürücüye sürücü için optimize edilmiş bir arayüz göstermek üzere kullandığı hizmetler 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 atıp bunları 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 Build media apps for cars (Arabalar için medya uygulamaları oluşturma) başlıklı makalede bulabilirsiniz.

Medya uygulamaları MediaLibraryService ve MediaSession kullanılarak geliştirilir. Android Automotive OS'te, park halindeyken kullanılmak üzere oturum açma ve ayarlar ekranlarını da Views veya Compose kullanarak oluşturabilirsiniz.

Video uygulamaları, kullanıcıların araba park hâlindeyken yayınlanan videoları izlemesine olanak tanır. Bu uygulamaların temel amacı, yayınlanan videoları göstermektir. Bu uygulamalar, Görünümler veya Compose 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ın olduğu varsayılmaktadır. Yoksa başlamak için Temel bir medya oynatıcı uygulaması oluşturma başlıklı makaleyi inceleyin.

Bu kılavuzda, yapmanız gereken işlemlerle ilgili bilgiler ve belirli talimatlar içeren ek kaynakların bağlantıları yer almaktadır.

Oynatma bileşenleri

Media3, oynatma kullanım alanları için çeşitli temel bileşenler sunar. Bu bileşenleri oluşturan sınıflar, önceki Android medya kitaplıklarıyla çalıştıysanız 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şmaları nedeniyle birkaç basit şekilde 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 uygulayın

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

Oynatma kontrolleri için medya oturumu kullanın. MediaSession API, ses veya video oynatıcıyla etkileşim kurmak için evrensel bir yöntem sunar. Jetpack Media3 kitaplığı, MediaLibrarySession içerir. Bu kitaplık, MediaSession'ı genişleterek içeriklere göz atma API'leri ekler.

Bir medya oturumunu oynatıcıya bağlamak, uygulamanın medya oynatmayı harici olarak reklamını yapması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 reklam yayınlama ile MediaLibrarySession kullanma başlıklı makaleleri inceleyin.

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

Oynatma kontrollerini etkinleştirme rehberinde, arabalarda oynatma kontrollerinizi özelleştirmenin yolları açıklanmaktadır.

Android Auto veya Android Automotive OS uygulamanıza bağlandığında, gösterilecek bir içerik kitaplığı ister. Bu işlem, onGetLibraryRoot() geri çağırma yöntemini tetikler. Kitaplığınıza erişime izin 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 seviyelerine göz atmaya çalıştığında onGetChildren()geri çağırma yöntemi çağrılır.

Bu platformlar, içerik kitaplığınızın yapısı konusunda ek sınırlar uygular. İçerik kitaplığınızın nasıl görüntüleneceğini özelleştirme hakkında ayrıntılı bilgi için Medya tarayıcı hizmetinizi oluşturma rehberine bakın.

Android Auto desteğini beyan etme

Telefon uygulamanızın Android Auto'yu desteklediğini bildirmek 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 bildiren bir XML dosyasını ifade eder. 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ği içermelidir:

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

Android Automotive OS desteğini beyan etme

Uygulamanızdaki mantığın tamamı otomotiv uygulamasıyla paylaşılamadığından bir otomotiv modülü oluşturmanız gerekir. Android Automotive OS'in manifest gibi bazı bileşenleri platforma özgü şartlara sahiptir. Bu bileşenlerin kodunu projenizdeki diğer kodlardan (ör. mobil uygulamanız için kullanılan kod) 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 File > New > New Module'u (Dosya > Yeni > Yeni Modül) tıklayın.
  2. Otomotiv Modülü'nü seçin ve Sonraki'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üğü 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)'yi seçin ve İ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ğeri seçtiğinizde tüm uyumlu arabalar hedeflenir.

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

Android Studio'da modülünüzü oluşturduktan sonra yeni otomotiv modülünüzde AndroidManifest.xml dosyasını 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 bildiren bir uses-feature öğesi de bulunur. Manifest dosyasında herhangi bir etkinlik bildirilmediğini unutmayın.

Ayarları veya oturum açma etkinliklerini uyguluyorsanız bunları buraya ekleyin. Bu etkinlikler, sistem tarafından açık niyetler kullanılarak tetiklenir ve Android Automotive OS uygulamanızın manifest dosyasında bildirdiğiniz tek etkinliklerdir.

Ayarları veya oturum açma etkinliklerini 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ışmamasını sağlar.

Uygulamanızın Android Automotive OS'i desteklediğini belirtmek 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 bildiren bir XML dosyasını ifade eder.

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çerikleri ekleyin:

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

Niyet filtreleri

Android Automotive OS, medya uygulamanızdaki etkinlikleri tetiklemek için açık amaçları kullanır. Manifest dosyasına CATEGORY_LAUNCHER veya ACTION_MAIN amaç filtrelerine sahip etkinlikler eklemeyin.

Aşağıdaki örnekte yer alan 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 bildirin.

<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

Android Auto ve Android Automotive OS için bir uygulamanız olduğuna göre, uygulamanızı araba kullanırken daha güvenli bir şekilde kullanılacak şekilde optimize etmek için ek adımlar atmak isteyebilirsiniz. Güvenli ve rahat bir kullanıcı deneyimi sağlamanıza yardımcı olacak daha fazla öneri için Voice işlemleri, dikkat dağıtıcı unsurlara karşı koruma ve hata işleme ile ilgili teknik kılavuzlara göz atın.

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

Video uygulamaları arabalarda medya uygulamalarından ayrı olarak kategorize edildiğinden Arabalar 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 bazı özel şartları göz önünde bulundurmanı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, 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"/>