POI-App erstellen

In diesem Leitfaden werden die verschiedenen Funktionen der Programmbibliothek Car App beschrieben, mit denen Sie die Funktionalität Ihrer App für Orte von Interesse (Points of Interest, POIs) implementieren können.

Kategorieunterstützung im Manifest deklarieren

Ihre App muss die androidx.car.app.category.POI App-Kategorie für Autos im Intent-Filter ihres CarAppServicedeklarieren.

Im folgenden Beispiel wird gezeigt, wie die App-Kategorie deklariert wird:

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

Auf die Kartenvorlagen zugreifen

POI-Apps können auf das PlaceListMapTemplate und MapWithContentTemplatezugreifen.

PlaceListMapTemplate wurde speziell für die Anzeige einer Liste von POIs neben einer Karte entwickelt, die vom Host gerendert wird.

Die MapWithContentTemplate kann verwendet werden, um Listen und andere Arten von Inhalten neben einer Karte anzuzeigen, die von Ihrer App gerendert wird. Weitere Informationen zur Verwendung dieser Vorlage finden Sie unter Karten zeichnen.

Damit Ihre App auf diese Vorlagen zugreifen kann, muss sie die Berechtigung androidx.car.app.MAP_TEMPLATES in der Datei AndroidManifest.xml deklarieren:

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

Inhalte von PlaceListMapTemplate aktualisieren

Sie können Fahrern die Möglichkeit geben, Inhalte zu aktualisieren, indem sie auf eine Schaltfläche tippen, während sie Listen von Orten durchsuchen, die mit PlaceListMapTemplate erstellt wurden. Implementieren Sie die OnContentRefreshListener Methode der Schnittstelle onContentRefreshRequested und verwenden Sie PlaceListMapTemplate.Builder.setOnContentRefreshListener, um den Listener in der Vorlage festzulegen und die Listenaktualisierung zu aktivieren.

Im folgenden Snippet wird gezeigt, wie der Listener in der Vorlage festgelegt wird:

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

Die Schaltfläche „Aktualisieren“ wird nur in der Kopfzeile von PlaceListMapTemplate angezeigt, wenn der Listener einen Wert hat.

Wenn der Nutzer auf die Schaltfläche „Aktualisieren“ klickt, wird die Methode onContentRefreshRequested Ihrer OnContentRefreshListener-Implementierung aufgerufen. Rufen Sie in onContentRefreshRequested die Screen.invalidate Methode auf. Der Host ruft dann die Methode Screen.onGetTemplate Ihrer App auf, um die Vorlage mit den aktualisierten Inhalten abzurufen. Weitere Informationen zum Aktualisieren von Vorlagen finden Sie unter Inhalte einer Vorlage aktualisieren. Solange die nächste von onGetTemplate zurückgegebene Vorlage denselben Typ hat, wird sie als Aktualisierung gezählt und nicht auf das Vorlagenkontingent angerechnet.

Mit App-Aktionen in Google Assistant einbinden

Aktivieren Sie die Sprachsteuerung für Ihre POI-App mit Assistant, damit Nutzer nach Orten von Interesse suchen können, indem sie beispielsweise „Hey Google, suche in Beispiel-App nach Ladestationen in der Nähe“ sagen. Eine detaillierte Anleitung finden Sie unter App-Aktionen für Autos.