Uygulamanızı Android Auto veya Android Automotive OS çalıştıran araçlara taşıyın. Her iki durumda da çalışan tek bir uygulama mimarisi kullanarak her kullanıcının uygulamanızdan yararlanmasını sağlayı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ını sağlayabilir. Telefon uygulamalarını otomobillerde de kullanılabilir hale getirerek daha iyi bir kullanıcı deneyimi sunabilirsiniz. Bunu Android Auto veya Android Automotive OS ile entegre ederek yapabilirsiniz.
Arabalar için Android uygulamaları her şeyden önce sürücünün dikkatini dağıtmamalıdır. Sesli komutlar ve son derece pratik bir görsel tasarım kullanmak gibi en iyi uygulamaları takip ederek 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 öngörülebilir kalıplar kullanabilir.
Android Auto
Android Auto, Android Auto uygulaması yüklü bir Android telefonu ve uyumlu bir arabası 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 arabalarının ekranında kullanabilirler. Android Auto'nun sürücüye optimize edilmiş 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şik olarak bulunan Android tabanlı bir bilgi-eğlence sistemidir. Arabanı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ı yerine doğrudan arabaya yükler.
Desteklenen uygulama kategorileri
Medya uygulamaları, kullanıcıların arabada 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ı geliştirme ve Arabalar için medya uygulamaları geliştirme başlıklı makaleleri inceleyin.
Medya uygulamaları MediaLibraryService ve MediaSession kullanılarak oluşturulur.
Android Automotive OS'te, Views veya Compose'u kullanarak oturum açma ve ayarlar ekranları da (park halindeyken kullanılmak üzere) oluşturabilirsiniz.
Video uygulamaları, kullanıcıların araba park halindeyken video izlemesine olanak tanır. Bu uygulamaların temel amacı, video akışlarını 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 ve Android Automotive OS için video uygulamaları oluşturma sayfalarına bakın.
Arabalar için ses çalma uygulamaları geliştirme
Bu kılavuzda, temel bir medya oynatma uygulamanızın olduğu varsayılmaktadır. Uygulamanız yoksa başlamak için Temel bir medya oynatıcı uygulaması oluşturma başlıklı makaleyi inceleyin.
Bu kılavuzda, yapmanız gerekenler hakkında bilgi verilmektedir. Ayrıca, özel talimatlar içeren diğer kaynakların bağlantıları da yer almaktadır.
Oynatma bileşenleri
Media3, oynatma kullanım alanları için birkaç önemli bileşen 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.
Daha fazla bilgi için Oynatma bileşenleri bölümüne bakın.
MediaLibraryService ve MediaLibrarySession uygulama
MediaLibraryService, medya kitaplığınızı sunmak ve erişim izni vermek için standartlaştırılmış bir API sağlar.
Bu platformlar, medya kitaplığınız için kendi sürücü güvenli 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 sunma başlıklı makaleyi inceleyin.
Oynatma kontrolleri için medya oturumu kullanın. MediaSession API'si, ses veya video oynatıcıyla etkileşim kurmak için evrensel bir yöntem sunar. Jetpack Media3 kitaplığı, içerik tarama API'leri eklemek için MediaSession sınıfını genişleten MediaLibrarySession sınıfını 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 bildirme 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, arabalardaki oynatma kontrollerinizi özelleştirme yöntemleri açıklanmaktadır.
Android Auto veya Android Automotive OS, uygulamanıza bağlandığında görüntülenecek bir içerik kitaplığı ister. Bu da onGetLibraryRoot() geri çağırma yöntemini tetikler. Kitaplığınıza erişime izin vermek için kök medya öğesini hızlıca 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 nasıl yapılandırıldığına dair ek sınırlar uygular. İçerik kitaplığınızın nasıl gösterileceğini özelleştirme hakkında ayrıntılı bilgi için Medya tarayıcı hizmetinizi oluşturma kılavuzunu inceleyin.
Android Auto için destek 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 beyan eden bir XML dosyasına başvurur. 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 barındırmalıdır:
<automotiveApp>
<uses name="media"/>
</automotiveApp>
Android Automotive OS desteğini beyan etme
Uygulamanızdaki mantığın tamamı otomotiv uygulamasıyla paylaşılamayacağı için 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:
- Android Studio'da File > New > New Module'ü (Dosya > Yeni > Yeni Modül) tıklayın.
- Otomotiv Modülü'nü seçin ve Sonraki'yi tıklayın.
- Uygulama/Kitaplık adı girin. Bu, kullanıcıların Android Automotive OS'te uygulamanız için gördüğü addır.
- Modül adı girin.
- Paket adını uygulamanızla eşleşecek şekilde ayarlayın.
Minimum SDK için API 28: Android 9.0 (Pie) seçeneğini belirleyin ve Next'i (İleri) tıklayın.
Android Automotive OS'i destekleyen tüm arabalar Android 9 (API düzeyi 28) veya sonraki sürümleri çalıştırdığından bu değer seçildiğinde tüm uyumlu arabalar hedeflenir.
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 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 öğesi, bazı standart uygulama bilgilerinin yanı sıra Android Automotive OS desteğini beyan eden bir uses-feature öğesi içerir.
Manifest'te tanımlanmış etkinlik olmadığını unutmayın.
Ayarlar veya oturum açma etkinlikleri uyguluyorsanız bunları buraya ekleyin. Bu etkinlikler, sistem tarafından açık intent'ler kullanılarak tetiklenir ve Android Automotive OS uygulamanızın manifest dosyasında beyan ettiğ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 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 beyan eden bir XML dosyasına başvurur.
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>
Intent filtreleri
Android Automotive OS, medya uygulamanızdaki etkinlikleri tetiklemek için açık intent'ler kullanır. Manifest dosyasına CATEGORY_LAUNCHER veya ACTION_MAIN intent filtreleri içeren etkinlikler eklemeyin.
Aşağıdaki örnekte yer alan etkinlikler genellikle bir telefonu veya başka bir mobil cihazı hedef alır. 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 atmak isteyebilirsiniz. Güvenli ve rahat bir kullanıcı deneyimi sağlamaya yardımcı olacak diğer öneriler için Sesli işlemler, Dikkat dağıtıcı unsurlara karşı önlemler ve Hata işleme ile ilgili teknik kılavuzlara bakın.
Android Automotive OS için video oynatma uygulamaları geliştirme
Video uygulamaları, arabalardaki medya uygulamalarından ayrı olarak kategorize edildiğinden video uygulamalarıyla ilgili bazı özel şartları bilmeniz gerekir. Bu şartlar, Arabalar için park halindeyken kullanılabilen uygulamalar oluşturma ve Android Automotive OS için video uygulamaları oluşturma başlıklı makalelerde açıklanmıştır. Aşağıdaki talimatları uygulayın:
Uygulamanızı video uygulaması olarak işaretleme
Uygulamanızın videoyu desteklediğini belirtmek için manifest dosyanızın <application> öğesine android:appCategory="video" özelliğini ekleyin.
<manifest ...>
...
<application
...
android:appCategory="video">
...
</application>
</manifest>
Android Automotive OS donanım özelliğini beyan etme
Uygulamanızın Android Automotive OS cihazları desteklediğini beyan etmek için manifest dosyanıza android.hardware.type.automotive <uses-feature> öğesini ekleyin.
android:required özelliğini "false" veya "true" olarak ayarlama konusunda bilgi edinmek için AAOS donanım özelliğini bildirme başlıklı makaleyi inceleyin.
<manifest ...>
...
<uses-feature android:name="android.hardware.type.automotive" ...>
...
</manifest>