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 le funzionalità della tua app per punti d'interesse (POI).

Dichiarare il supporto delle categorie nel file manifest

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

Le app per POI possono accedere a PlaceListMapTemplate e MapWithContentTemplate.

PlaceListMapTemplate è progettato specificamente per mostrare un elenco di POI insieme a una mappa di cui viene eseguito il rendering dall'host.

Il MapWithContentTemplate può essere utilizzato per visualizzare elenchi e altri tipi di contenuti insieme a una mappa di cui viene eseguito il rendering dalla tua app. Per maggiori 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>

Aggiornare i contenuti di PlaceListMapTemplate

Puoi consentire ai conducenti di aggiornare i contenuti con un tocco di un pulsante mentre sfogliano elenchi di luoghi creati con PlaceListMapTemplate. Implementa il OnContentRefreshListener metodo onContentRefreshRequested dell'interfaccia e utilizza PlaceListMapTemplate.Builder.setOnContentRefreshListener per impostare il listener sul modello per abilitare 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 nell'intestazione di PlaceListMapTemplate solo 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 Screen.invalidate metodo. L'host richiama quindi il metodo Screen.onGetTemplate della tua app per recuperare il modello con i contenuti aggiornati. Per ulteriori informazioni sull'aggiornamento dei modelli, consulta Aggiornare i contenuti di un modello. A condizione che il modello successivo restituito da onGetTemplate sia dello stesso tipo, viene conteggiato come aggiornamento e non viene conteggiato ai fini della quota di modelli.

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

Attiva la funzionalità vocale della tua app per POI utilizzando l'Assistente per consentire agli utenti di cercare punti di interesse chiedendo, ad esempio, "Hey Google, trova le stazioni di ricarica nelle vicinanze su EsempioApp". Per istruzioni dettagliate, consulta Azioni app per auto.