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 POI dapat mengakses PlaceListMapTemplate dan MapWithContentTemplate.

PlaceListMapTemplate dirancang khusus untuk menampilkan daftar POI bersama peta yang dirender oleh host.

MapWithContentTemplate dapat digunakan untuk menampilkan daftar dan jenis konten lainnya bersama peta yang dirender oleh aplikasi Anda. Lihat Menggambar peta untuk mengetahui detail selengkapnya tentang cara menggunakan template ini.

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

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

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.