Crea un'app per i punti di interesse

Questa guida descrive in dettaglio le diverse funzionalità della libreria di app per auto che puoi utilizzare per implementare la funzionalità della tua app per punti d'interesse (POI).

Dichiarare il supporto delle categorie nel manifest

La tua app deve dichiarare la androidx.car.app.category.POI categoria di app per auto nel filtro per intent del suo 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>

Accedere ai modelli di mappa

Le app di PDI possono accedere a PlaceListMapTemplate e MapWithContentTemplate.

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

Il MapWithContentTemplate può essere utilizzato per visualizzare elenchi e altri tipi di contenuti insieme a una mappa visualizzata dalla tua app. Per ulteriori dettagli sull'utilizzo di questo modello, consulta Disegnare mappe.

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

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

Aggiorna i contenuti di PlaceListMapTemplate

Puoi offrire agli autisti un modo per aggiornare i contenuti toccando un pulsante mentre sfogliano gli elenchi di luoghi creati con PlaceListMapTemplate. Implementa il metodo onContentRefreshRequested dell'interfaccia OnContentRefreshListener e utilizza PlaceListMapTemplate.Builder.setOnContentRefreshListener per impostare il listener sul modello per attivare l'aggiornamento dell'elenco.

Il seguente snippet mostra come impostare il listener sul modello:

return 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 di PlaceListMapTemplate se il listener ha un valore.

Quando l'utente fa clic sul pulsante di aggiornamento, viene chiamato il metodo onContentRefreshRequested dell'implementazione di OnContentRefreshListener. All'interno di onContentRefreshRequested, chiama il metodo Screen.invalidate. L'host richiama quindi il metodo Screen.onGetTemplate della tua app per recuperare il modello con i contenuti aggiornati. Per saperne di più sull'aggiornamento dei modelli, consulta Aggiornare i contenuti di un modello. Se il modello successivo restituito da onGetTemplate è dello stesso tipo, viene conteggiato come aggiornamento e non rientra nella quota di modelli.

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

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