POI-App erstellen

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

Deklariere in deinem Manifest die Unterstützung von Kategorien

Deine App muss die androidx.car.app.category.POI Auto-App-Kategorie im Intent-Filter der zugehörigen 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>

Kartenvorlagen aufrufen

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

Die PlaceListMapTemplate ist speziell dafür vorgesehen, eine Liste der POIs neben einer Karte anzuzeigen, die vom Host gerendert wird.

Mit MapWithContentTemplate lassen sich Listen und andere Inhaltstypen neben einer Karte anzeigen, die von Ihrer App gerendert wird. Weitere Informationen zur Verwendung dieser Vorlage finden Sie unter Karten zeichnen.

Damit Sie auf diese Vorlagen zugreifen können, muss Ihre App die Berechtigung androidx.car.app.MAP_TEMPLATES in der Datei AndroidManifest.xml deklarieren:

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

„PlaceListMapTemplate“-Inhalt aktualisieren

Sie können zulassen, dass Fahrer Inhalte mit nur einmal tippen auf eine Schaltfläche aktualisieren, während sie sich Listen von Orten ansehen, 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 so festzulegen, dass die Listenaktualisierung aktiviert wird.

Das folgende Snippet zeigt, wie der Listener für die Vorlage festgelegt wird:

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();

Die Schaltfläche zum Aktualisieren wird nur dann im Header von PlaceListMapTemplate angezeigt, wenn der Listener einen Wert hat.

Wenn der Nutzer auf die Schaltfläche zum Aktualisieren klickt, wird die Methode onContentRefreshRequested der 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 dem aktualisierten Inhalt abzurufen. Weitere Informationen zum Aktualisieren von Vorlagen finden Sie unter Inhalt 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.

Mit App Actions in Google Assistant einbinden

Wenn Sie die Sprachsteuerung Ihrer POI-App mit Assistant aktivieren, können Nutzer nach POIs suchen, indem Sie beispielsweise sagen: „Hey Google, finde in ExampleApp Ladestationen in der Nähe“. Eine ausführliche Anleitung finden Sie unter App Actions for Cars.