Crea un'app per i punti di interesse

Questa guida illustra nel dettaglio le diverse funzionalità della raccolta di app per auto che puoi utilizzare per implementare la funzionalità del punto d'interesse (PDI) dell'app.

Dichiara il supporto delle categorie nel tuo file manifest.

La tua app deve dichiarare androidx.car.app.category.POI categoria di app auto nel filtro per intent del relativo CarAppService.

L'esempio seguente mostra come dichiarare la categoria di app:

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

Accedi ai modelli di mappa

Le app per PDI possono accedere alla PlaceListMapTemplate e MapWithContentTemplate.

Il PlaceListMapTemplate è progettato specificamente per mostrare un elenco di PDI accanto a una mappa visualizzata dall'host.

È possibile usare MapWithContentTemplate per visualizzare elenchi e altri tipi di contenuti accanto a una mappa il cui rendering viene eseguito dalla tua app. Consulta Disegna mappe per ulteriori dettagli sull'utilizzo modello.

Per accedere a questi modelli, la tua app deve dichiarare Autorizzazione androidx.car.app.MAP_TEMPLATES nel relativo file AndroidManifest.xml:

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

Aggiorna i contenuti PlaceListMapTemplate

Puoi consentire ai conducenti di aggiornare i contenuti semplicemente toccando un pulsante mentre navigano di luoghi con PlaceListMapTemplate Implementa il OnContentRefreshListener dell'interfaccia onContentRefreshRequested e utilizza PlaceListMapTemplate.Builder.setOnContentRefreshListener per impostare il listener sul modello per attivare l'aggiornamento dell'elenco.

Lo snippet seguente mostra come impostare il listener sul modello:

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

Il pulsante di aggiornamento viene visualizzato solo nell'intestazione del PlaceListMapTemplate se il listener ha un valore.

Quando l'utente fa clic sul pulsante di aggiornamento, onContentRefreshRequested di implementazione di OnContentRefreshListener. Entro onContentRefreshRequested, chiama il Screen.invalidate . L'organizzatore richiama quindi Screen.onGetTemplate per recuperare il modello con i contenuti aggiornati. Consulta la sezione Aggiornare contenuti di un modello per ulteriori informazioni che aggiornano i modelli. A condizione che il modello successivo venga restituito da onGetTemplate è dello stesso tipo, viene conteggiato come un aggiornamento e non viene conteggiato ai fini quota del modello.

Eseguire l'integrazione con l'Assistente Google usando Azioni app

Attiva i comandi vocali per l'app PDI utilizzando l'assistente per consentire agli utenti di cercare punti di interesse a chiedere, ad esempio, "Hey Google, trova stazioni di ricarica nelle vicinanze EsempioApp". Per istruzioni dettagliate, vedi Azioni app per le auto.