POI-App erstellen

In diesem Leitfaden werden die verschiedenen Funktionen der Car App Library beschrieben, mit denen Sie die Funktionen Ihrer POI-App (Point of Interest) implementieren können.

Kategorieunterstützung im Manifest deklarieren

Ihre App muss die androidx.car.app.category.POI Car App-Kategorie im Intent-Filter ihrer CarAppService deklarieren.

Das folgende Beispiel zeigt, 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 Kartenvorlagen zugreifen

POI-Apps können auf PlaceListMapTemplate und MapWithContentTemplate zugreifen.

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

Mit MapWithContentTemplate können Sie Listen und andere Arten von Inhalten neben einer Karte anzeigen, 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 der PlaceListMapTemplate aktualisieren

Fahrer können Inhalte mit einem Fingertipp aktualisieren, während sie in Listen von Orten suchen, die mit PlaceListMapTemplate erstellt wurden. Implementieren Sie die Methode onContentRefreshRequested der OnContentRefreshListener-Schnittstelle und verwenden Sie PlaceListMapTemplate.Builder.setOnContentRefreshListener, um den Listener für die Vorlage festzulegen und die Listenaktualisierung zu aktivieren.

Das folgende Snippet zeigt, wie der Listener für die 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 Methode Screen.invalidate 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 vom selben Typ ist, wird sie als Aktualisierung gezählt und nicht auf das Vorlagenkontingent angerechnet.

App-Aktionen für Google Assistant einbinden

Sie können Ihre POI-App mit Assistant sprachgesteuert machen, damit Nutzer nach POIs suchen können, indem sie z. B. Hey Google, finde Ladestationen in der Nähe in Beispiel-App sagen. Eine ausführliche Anleitung finden Sie unter App Actions for Cars.