Membangun aplikasi lokasi menarik

Panduan ini menjelaskan berbagai fitur Library Aplikasi Mobil yang dapat Anda gunakan untuk menerapkan fungsi aplikasi lokasi menarik (POI).

Mendeklarasikan dukungan kategori dalam manifes Anda

Aplikasi Anda harus mendeklarasikan kategori aplikasi mobil androidx.car.app.category.POI dalam filter intent CarAppService.

Contoh berikut menunjukkan cara mendeklarasikan kategori aplikasi:

<application>
    ...
   <service
       ...
        android:name=".MyCarAppService"
        android:exported="true">
      <intent-filter>
        <action android:name="androidx.car.app.CarAppService" />
        <category android:name="androidx.car.app.category.POI"/>
      </intent-filter>
    </service>
    ...
<application>

Mengakses template peta

Aplikasi dapat mengakses PlaceListMapTemplate, yang secara khusus dirancang untuk menampilkan daftar POI di samping peta yang dirender oleh host.

Untuk mengakses template ini, aplikasi Anda harus mendeklarasikan izin androidx.car.app.MAP_TEMPLATES dalam file AndroidManifest.xml-nya:

<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>

Memuat ulang konten PlaceListMapTemplate

Anda dapat mengizinkan pengemudi memuat ulang konten dengan mengetuk tombol saat menjelajahi daftar tempat yang dibangun dengan PlaceListMapTemplate. Implementasikan metode onContentRefreshRequested antarmuka OnContentRefreshListener, lalu gunakan PlaceListMapTemplate.Builder.setOnContentRefreshListener untuk menetapkan pemroses pada template guna mengaktifkan pemuatan ulang daftar.

Cuplikan berikut menunjukkan cara menetapkan pemroses pada template:

Kotlin

PlaceListMapTemplate.Builder()
    ...
    .setOnContentRefreshListener {
        // Execute any desired logic
        ...
        // Then call invalidate() so onGetTemplate() is called again
        invalidate()
    }
    .build()

Java

new PlaceListMapTemplate.Builder()
        ...
        .setOnContentRefreshListener(() -> {
            // Execute any desired logic
            ...
            // Then call invalidate() so onGetTemplate() is called again
            invalidate();
        })
        .build();

Tombol muat ulang hanya ditampilkan dalam header PlaceListMapTemplate jika pemroses memiliki nilai.

Saat pengguna mengklik tombol muat ulang, metode onContentRefreshRequested dari implementasi OnContentRefreshListener Anda akan dipanggil. Dalam onContentRefreshRequested, panggil metode Screen.invalidate. Host kemudian memanggil kembali ke metode Screen.onGetTemplate aplikasi untuk mengambil template dengan konten yang dimuat ulang. Lihat Memuat ulang konten template untuk mengetahui informasi selengkapnya tentang memuat ulang template. Selama template berikutnya yang ditampilkan oleh onGetTemplate memiliki jenis yang sama, template tersebut dianggap sebagai pemuatan ulang dan tidak dihitung dalam kuota template.

Mengintegrasikan dengan Asisten Google menggunakan Action Aplikasi

Aktifkan aplikasi POI Anda dengan suara menggunakan Asisten untuk memungkinkan pengguna menelusuri lokasi menarik dengan menanyakan hal-hal seperti, "Ok Google, temukan SPKLU terdekat di ExampleApp". Untuk petunjuk mendetail, lihat Action Aplikasi untuk Mobil.