Memperluas aplikasi media ke Android untuk Mobil

Hadirkan aplikasi Anda ke dalam kendaraan yang menjalankan Android Auto atau Android Automotive OS. Gunakan satu arsitektur aplikasi yang berfungsi untuk Android Auto dan Android Automotive OS sehingga setiap pengguna dapat menikmati aplikasi Anda.

Apa itu Android untuk Mobil?

Aplikasi media untuk mobil dapat memberikan cara bagi pengguna untuk menghubungkan kehidupan digital mereka secara lancar dengan mobil. Dengan memperluas ketersediaan aplikasi yang sama untuk ponsel untuk mobil, Anda akan menciptakan pengalaman pengguna yang lebih baik. Anda dapat melakukannya dengan mengintegrasikan Android Auto, atau Android Automotive OS.

Aplikasi Android untuk mobil harus mengutamakan menghindari gangguan bagi pengemudi. Anda dapat meminimalkan gangguan dengan mengikuti praktik terbaik seperti menggunakan perintah suara dan desain visual yang sangat praktis. Dengan cara ini, aplikasi media Anda dapat menampilkan informasi tepat waktu kepada pengemudi hanya jika relevan dan menggunakan pola yang dapat diprediksi untuk tugas umum.

Android Auto

Android Auto memberikan pengalaman aplikasi yang dioptimalkan untuk pengemudi bagi pengguna yang memiliki ponsel Android dengan aplikasi Android Auto dan sistem stereo purnajual atau mobil yang kompatibel. Pengguna dapat menggunakan aplikasi Anda langsung di layar mobil dengan menghubungkan ponsel. Aktifkan Android Auto agar terhubung ke aplikasi ponsel Anda dengan membuat layanan yang digunakan Android Auto untuk menampilkan antarmuka yang dioptimalkan untuk pengemudi kepada pengemudi.

Android Automotive OS

Android Automotive OS adalah sistem infotainmen berbasis Android yang terintegrasi dalam kendaraan. Sistem mobil adalah perangkat Android mandiri yang dioptimalkan untuk mengemudi. Dengan Android Automotive OS, pengguna menginstal aplikasi Anda langsung ke mobil, bukan dari ponselnya.

Kategori aplikasi yang didukung

Aplikasi media memungkinkan pengguna menjelajahi serta memutar musik, radio, buku audio, dan konten audio lainnya di dalam mobil. Untuk mengetahui informasi selengkapnya, lihat Membuat aplikasi pemutaran audio untuk mobil. Informasi selengkapnya juga tersedia di Membangun aplikasi media untuk mobil.

Aplikasi media dibuat menggunakan MediaLibraryService dan MediaSession. Di Android Automotive OS, Anda juga dapat mem-build layar login dan setelan (untuk digunakan saat diparkir) menggunakan View atau Compose.

Aplikasi video memungkinkan pengguna melihat video streaming saat mobil diparkir. Tujuan inti dari aplikasi ini ialah untuk menampilkan video streaming. Aplikasi ini dibuat menggunakan View atau Compose. Untuk informasi selengkapnya, lihat Membuat aplikasi pemutaran video untuk Android Automotive OS. Informasi selengkapnya tersedia di Membangun aplikasi video untuk Android Automotive OS.

Membuat aplikasi pemutaran audio untuk mobil

Panduan ini mengasumsikan bahwa Anda sudah memiliki aplikasi pemutaran media dasar. Jika belum, untuk memulai, buka Membuat aplikasi pemutar media dasar.

Panduan ini memberi Anda informasi tentang tindakan yang perlu dilakukan, termasuk link ke referensi lebih lanjut dengan panduan khusus.

Komponen pemutaran

Media3 menawarkan beberapa komponen utama untuk kasus penggunaan pemutaran. Class yang membentuk komponen ini tidak asing bagi Anda jika Anda pernah bekerja dengan library media Android sebelumnya.

Diagram berikut menunjukkan cara komponen ini disatukan dalam sebuah aplikasi standar.

Berbagai komponen aplikasi media yang menggunakan Media3 terhubung
  bersama dalam beberapa cara sederhana karena berbagi antarmuka
   dan class.
Gambar 1: Komponen aplikasi media

Untuk mengetahui informasi selengkapnya, lihat Komponen pemutaran.

Mengimplementasikan MediaLibraryService dan MediaLibrarySession

MediaLibraryService menyediakan API terstandardisasi untuk menyalurkan dan mengizinkan akses ke koleksi media Anda. Hal ini diperlukan saat menambahkan dukungan untuk Android Auto atau Android Automotive OS ke aplikasi media Anda, karena platform ini menyediakan UI yang aman bagi pengemudi untuk library media Anda. Untuk mengetahui informasi selengkapnya tentang cara mengimplementasikan dan menggunakan MediaLibraryService, lihat Menayangkan konten dengan MediaLibraryService.

Untuk kontrol pemutaran, gunakan sesi media. MediaSession API menyediakan cara universal untuk berinteraksi dengan pemutar audio atau video. Library Jetpack Media3 menyertakan MediaLibrarySession, yang memperluas MediaSession untuk menambahkan API penjelajahan konten.

Menghubungkan sesi media ke pemutar memungkinkan aplikasi mengiklankan pemutaran media secara eksternal dan menerima perintah pemutaran dari sumber eksternal seperti Android Auto, Android Automotive OS, atau Asisten Google. Untuk informasi selengkapnya, lihat Mengontrol dan memberitahukan pemutaran menggunakan MediaSession dan Menggunakan MediaLibrarySession.

Setidaknya, sesi media Anda harus mendeklarasikan dukungan untuk perintah pemutar berikut:

Panduan Mengaktifkan kontrol pemutaran menjelaskan cara menyesuaikan kontrol pemutaran di mobil.

Saat terhubung ke aplikasi Anda, Android Auto atau Android Automotive OS akan meminta library konten untuk ditampilkan, yang memicu metode callback onGetLibraryRoot(). Anda dapat dengan cepat menampilkan item media root untuk mengizinkan akses ke library Anda. Metode callback onGetChildren() dipanggil saat Android Auto atau Android Automotive OS mencoba menjelajahi level library konten yang lebih dalam.

Platform ini menerapkan batas tambahan pada cara penyusunan library konten. Untuk mengetahui detail tentang cara menyesuaikan cara koleksi konten ditampilkan, lihat panduan Membuat layanan browser media.

Mendeklarasikan dukungan untuk Android Auto

Gunakan entri manifes berikut untuk mendeklarasikan bahwa aplikasi telepon Anda mendukung Android Auto:

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

Entri manifes ini merujuk ke sebuah file XML yang mendeklarasikan kapabilitas otomotif yang didukung aplikasi Anda. Untuk menunjukkan bahwa Anda memiliki aplikasi media, tambahkan file XML dengan nama automotive_app_desc.xml ke direktori res/xml/ di project Anda. File ini harus mencakup konten berikut:

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

Mendeklarasikan dukungan untuk Android Automotive OS

Anda perlu membuat modul otomotif karena tidak semua logika di aplikasi Anda dapat dibagikan ke aplikasi otomotif. Beberapa komponen Android Automotive OS, seperti manifes, memiliki persyaratan khusus platform. Buat modul yang bisa memisahkan kode untuk komponen ini dari kode lain dalam project Anda, seperti kode yang digunakan untuk aplikasi seluler.

Ikuti langkah-langkah berikut untuk menambahkan modul otomotif ke project:

  1. Di Android Studio, klik File > New > New Module.
  2. Pilih Automotive Module, lalu klik Next.
  3. Masukkan Application/Library name. Nama ini akan dilihat pengguna aplikasi Anda di Android Automotive OS.
  4. Masukkan Module name.
  5. Sesuaikan Package name agar cocok dengan aplikasi Anda.
  6. Pilih API 28: Android 9.0 (Pie) untuk Minimum SDK, lalu klik Next.

    Semua mobil yang mendukung Android Automotive OS berjalan pada Android 9 (level API 28) atau yang lebih tinggi, jadi memilih nilai ini akan menargetkan semua mobil yang kompatibel.

  7. Pilih No Activity, lalu klik Finish.

Setelah membuat modul di Android Studio, buka AndroidManifest.xml pada modul otomotif baru Anda:

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

Elemen application memiliki beberapa informasi aplikasi standar serta elemen uses-feature yang mendeklarasikan dukungan untuk Android Automotive OS. Perhatikan juga bahwa tidak ada aktivitas yang dideklarasikan dalam manifes.

Jika Anda menerapkan aktivitas setelan dan login, tambahkan di sini. Aktivitas ini dipicu oleh sistem menggunakan intent eksplisit dan merupakan satu-satunya aktivitas yang Anda deklarasikan dalam manifes untuk aplikasi Android Automotive OS.

Setelah menambahkan aktivitas setelan dan login, lengkapi file manifes dengan menyetel atribut android:appCategory="audio" di elemen application dan menambahkan elemen uses-feature berikut:

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

Menyetel fitur ini secara eksplisit ke required="false" memastikan bahwa aplikasi Anda tidak bentrok dengan fitur hardware yang tersedia di perangkat Automotive OS.

Gunakan entri manifes berikut untuk mendeklarasikan bahwa aplikasi Anda mendukung Android Automotive OS:

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

Entri manifes ini merujuk ke sebuah file XML yang mendeklarasikan kemampuan otomotif yang didukung aplikasi Anda.

Untuk menunjukkan bahwa Anda memiliki aplikasi media, tambahkan file XML dengan nama automotive_app_desc.xml ke direktori res/xml/ di project Anda. Sertakan konten berikut dalam file ini:

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

Filter intent

Android Automotive OS menggunakan intent eksplisit untuk memicu aktivitas di aplikasi media Anda. Jangan sertakan aktivitas apa pun yang memiliki filter intent CATEGORY_LAUNCHER atau ACTION_MAIN dalam file manifes.

Aktivitas seperti dalam contoh berikut biasanya menargetkan ponsel atau jenis perangkat seluler lainnya. Deklarasikan aktivitas ini dalam modul yang membuat aplikasi ponsel, bukan dalam modul yang membuat aplikasi Android Automotive OS.

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

Langkah selanjutnya

Setelah memiliki aplikasi untuk Android Auto dan Android Automotive OS, sebaiknya lakukan langkah tambahan untuk mengoptimalkan aplikasi agar lebih aman digunakan saat mengemudi. Untuk mengetahui rekomendasi lainnya guna membantu memastikan pengalaman pengguna yang aman dan nyaman, lihat panduan teknis untuk Voice actions, Pengamanan gangguan, dan Penanganan error.

Membangun aplikasi pemutaran video untuk Android Automotive OS

Karena aplikasi video dikategorikan secara terpisah dari aplikasi media di mobil, Anda perlu mengetahui beberapa persyaratan khusus untuk aplikasi video, seperti yang dijelaskan dalam Membangun aplikasi terparkir untuk Android Automotive OS, dan Membuat aplikasi video untuk Android Automotive OS. Anda harus menggunakan petunjuk berikut.

Menandai aplikasi Anda sebagai aplikasi video

Untuk menunjukkan bahwa aplikasi Anda mendukung video, tambahkan file XML dengan nama automotive_app_desc.xml ke direktori res/xml/ dalam project. Dalam file ini, sertakan konten berikut:

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

Kemudian, dalam elemen application di manifes Anda, tambahkan elemen meta-data berikut yang mereferensikan file XML:

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