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 dengan mobil mereka dengan lancar. Dengan memperluas aplikasi yang sama untuk ponsel agar tersedia untuk mobil, Anda akan menciptakan pengalaman pengguna yang lebih baik. Anda dapat melakukannya dengan berintegrasi dengan Android Auto, atau Android Automotive OS.

Aplikasi Android untuk mobil harus mengutamakan pencegahan 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 tersebut.

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 informasi selengkapnya, lihat Mem-build aplikasi pemutaran audio untuk mobil. Informasi lebih lanjut juga tersedia di Membuat aplikasi media untuk mobil.

Aplikasi media dibuat menggunakan MediaLibraryService dan MediaSession. Di Android Automotive OS, Anda juga dapat membuat layar login dan setelan (untuk digunakan saat parkir) 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 Mem-build aplikasi pemutaran video untuk Android Automotive OS. Informasi lebih lanjut tersedia di Membuat aplikasi video untuk Android Automotive OS.

Mem-build 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 hal 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 sudah Anda pahami jika telah menggunakan library media Android sebelumnya.

Diagram berikut menunjukkan cara komponen ini menyatu dalam aplikasi standar.

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

Untuk mengetahui informasi selengkapnya, lihat Komponen pemutaran.

Menerapkan MediaLibraryService dan MediaLibrarySession

MediaLibraryService menyediakan API standar untuk menayangkan 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-nya sendiri yang aman bagi pengemudi untuk library media Anda. Untuk informasi selengkapnya tentang cara menerapkan 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 mengumumkan 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.

Minimal, 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 yang lebih dalam dari library konten Anda.

Platform ini menerapkan batas tambahan pada cara library konten Anda disusun. Untuk mengetahui detail tentang cara menyesuaikan tampilan library konten, 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 dalam aplikasi Anda dapat dibagikan dengan aplikasi otomotif. Beberapa komponen Android Automotive OS, seperti manifes, memiliki persyaratan khusus platform. Buat modul yang dapat menjaga kode untuk komponen ini terpisah 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 atau 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 bernama 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 berikutnya

Setelah memiliki aplikasi untuk Android Auto dan Android Automotive OS, Anda mungkin ingin mengambil langkah tambahan untuk mengoptimalkan aplikasi agar lebih aman digunakan saat berkendara. Untuk rekomendasi lainnya guna 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 parkir untuk Android Automotive OS, dan Membangun aplikasi video untuk Android Automotive OS. Anda perlu menggunakan petunjuk berikut.

Menandai aplikasi Anda sebagai aplikasi video

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

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

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

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