Google Maps pour Android Automotive Intents

Clause de non-responsabilité

Ce produit/cette fonctionnalité va changer et n'est sujette à aucun contrat de niveau de service (SLA) ni règlement relatif aux abandons. Elle est susceptible d'être modifiée dans les prochaines versions.

Concernant les exemples de logiciels, de fichiers de données et/ou de code source associés à cette documentation : le produit est fourni "en l'état" et sans garantie d'aucune sorte, et Google décline expressément et toutes les garanties, explicites, implicites, légales ou autres, y compris, mais sans s'y limiter, garanties de qualité marchande, d'adéquation à un usage particulier et de non-atteinte aux droits en lien avec ce produit.


Grâce aux intents Android Automotive, vous pouvez lancer la navigation dans Google Maps.

Pour en savoir plus, consultez Intents Google Maps pour Android.

Pour savoir comment intégrer votre application aux véhicules exécutant l'une de ces deux options, Android Auto ou Android Automotive OS, consultez Android for Cars.

Présentation

Cette page décrit les intents que vous pouvez utiliser avec Google Maps pour Android. Automobile. Pour accéder à la documentation détaillée pour les développeurs Android, consultez les pages suivantes:

Requêtes d'intent

Pour lancer Google Maps pour Android Automotive avec un intent, vous devez d'abord créer un objet Intent en spécifiant son action, son URI et son package.

  • Action. Tous les intents Google Maps sont appelés une action "View" (Vue), ACTION_VIEW

  • URI. Les intents Google Maps utilisent des chaînes encodées en URI qui spécifient la action, ainsi que certaines données avec lesquelles effectuer l'action.

  • Paquet. Appeler setPackage("com.google.android.apps.maps") garantit que l'appli Google Maps pour Android gère l'intent. Si le package n’est pas définie, le système détermine quelles applications peuvent gérer l'intent. Si plusieurs applications sont disponibles, vous pouvez être invité à choisir celle que vous souhaitez utiliser.

Après avoir créé l'intent, vous pouvez demander au système de lancer l'intent associé application de plusieurs façons. Une méthode courante consiste à transmettre l'intent à [startActivity()]. Le système lancera l'application nécessaire, Google Maps, puis lancez l'activité correspondante.

// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);

Si le système ne peut pas identifier une application capable de répondre à l'intent, votre application risque de planter. C'est pourquoi vous devez d'abord vérifier qu'une application réceptrice avant de présenter l'un de ces intents à un utilisateur.

Pour vérifier qu'une application peut recevoir l'intent, appelez [resolveActivity()] sur votre objet [Intent]. Si le résultat n'est pas nul, au moins une application peut gérer l'intent et vous pouvez l'appeler en toute sécurité. [startActivity()] Si le résultat est nul, vous ne devez pas utiliser l'intent et, si possible, désactivez la fonctionnalité qui appelle l'intent.

if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}

Par exemple, pour lancer la navigation détaillée vers le zoo de Taronga à Sydney, vous pouvez utiliser le code suivant:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}

Chaînes de requête encodées en URI

Toutes les chaînes transmises aux intentions Google Maps doivent être encodées sous forme d'URI. Par exemple, la chaîne "1st & Pike, Seattle" doit être définie sur 1st%20%26%20Pike%2C%20Seattle. Les espaces dans la chaîne peuvent être encodés avec %20 ou remplacés par le signe plus (+).

Vous pouvez utiliser la méthode android.net.Uri parse() pour encoder vos chaînes. Exemple :

Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));

Lancer la navigation détaillée

Utilisez cet intent pour lancer la navigation Google Maps avec des instructions de navigation détaillées pour une ou plusieurs adresses ou coordonnées spécifiées. Les instructions sont toujours données à partir de la position actuelle de l'utilisateur.

google.navigation:q=a+street+address
google.navigation:q=latitude,longitude
google.navigation:place=placename

Paramètres

Pour lancer la navigation, utilisez place ou q avec waypoints, qui est facultatif. Si vous souhaitez marquer un point de cheminement comme borne de recharge, consultez Envoyer un plan de trajet en véhicule électrique à Google Maps.

  • q définit le point d'arrivée des recherches de navigation. Il peut s'agir latitude/longitude ou une adresse au format de requête. S'il s'agit d'une chaîne de requête renvoie plusieurs résultats, le premier est sélectionné.

  • place définit le point de terminaison sur "Domicile" ou "Travail". Indiquez l'adresse du domicile la maison et le travail de l'utilisateur pour accéder au lieu de travail de l'utilisateur.

  • avoid définit les éléments géographiques que l'itinéraire doit essayer d'éviter. avoid est facultatif et peut être défini sur une ou plusieurs des valeurs suivantes:

    • t pour les péages
    • h pour les autoroutes
    • f pour les ferries
  • waypoints spécifie un ou plusieurs lieux intermédiaires vers lesquels l'itinéraire doit être calculé. la destination finale spécifiée par q. Vous pouvez spécifier plusieurs points de cheminement en utilisant la barre verticale (|) pour séparer les différents lieux, par exemple : Berlin,Germany|Paris,France Vous pouvez utiliser autant de points de cheminement que nécessaire. Les points de cheminement seront ajoutés à l'itinéraire dans l'ordre dans lequel ils sont répertoriés dans l'URL. Chaque point de cheminement peut être une adresse ou des valeurs séparées par une virgule Coordonnées de latitude/longitude Vous pouvez avoir des adresses et des coordonnées de latitude et de longitude. dans le même intent. Les chaînes doivent être avec des caractères d'échappement d'URL. comme "Berlin,Allemagne|Paris,France" doit être converti en Berlin%2CGermany%7CParis%2CFrance

Exemples

Cet intent demandera une navigation détaillée vers le zoo de Taronga, Sydney, Australie:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Si vous préférez ne pas payer de péages ni prendre de ferry, vous pouvez demander un itinéraire qui tente d'éviter les situations suivantes:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Si vous préférez obtenir un itinéraire jusqu'à votre domicile, utilisez:

Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Pour lancer la navigation détaillée vers les trois adresses suivantes dans l'ordre, passe le zoo de Taronga en tant que destination finale q, et Google Sydney et Sydney l'Opera House comme points de cheminement:

  1. Google Sydney

  2. Opéra de Sydney

  3. Zoo de Taronga, Sydney, Australie

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Comme avec q, vous pouvez représenter n'importe quel point de cheminement par une virgule et la longitude au lieu d'une adresse. Par exemple, pour lancer le même navigation tout en passant la latitude et la longitude pour l'opéra de Sydney. de l'adresse:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Envoyer un plan de trajet en véhicule électrique à Google Maps

Utilisez cet intent de navigation multidestination pour spécifier certaines destinations en tant que arrêts-recharge pour véhicules électriques (VE). Cet intent, qui étend L'intent multi-points de cheminement, qui aide les conducteurs à entretenir suffisamment de véhicules électriques la charge de la batterie pour atteindre leur destination en synchronisant les informations sur les arrêts-recharge entre les applications de planification de trajets en VE et Google Maps.

Pour les arrêts-recharge, les intentions de trajet:

  • Doit contenir un nom et une latitude et une longitude
  • Peut éventuellement contenir une puissance de sortie, à utiliser pour calculer le temps de charge

Google utilise le nom de la borne de recharge et la latitude et la longitude correspondantes pour trouver une recharge correspondante. pour afficher des données enrichies, comme le connecteur les types, les totaux, les vitesses et la disponibilité en temps réel, les modes de paiement acceptés, et les points d'intérêt (POI) hôtes. Par exemple, les itinéraires en voiture dans parkings extérieurs pour la dernière partie de la navigation, les horaires d'ouverture, avis. Pour veiller à ce que les bornes de recharge correspondent bien aux données Google, utilisez <brand name>, par exemple ChargePoint.

Paramètres

Destination finale

Pour définir une borne de recharge comme destination finale, utilisez:

  • q: doit contenir la valeur lat-long de la borne de recharge.
  • q_type: 1 indique que la destination finale est une borne de recharge.
  • q_name: nom de la destination finale. Obligatoire si la valeur de q_type est 1.
  • q_power_output_kw: un nombre double correspondant à la puissance de sortie de la borne de recharge en de kilowatts. Facultatif.

Repères

Pour les points de cheminement, tous les paramètres sont des tableaux parallèles séparés par | valeurs dans le même ordre que les points de cheminement, à l'exclusion de la destination finale. Une non-concordance du nombre d'éléments dans des tableaux parallèles est traitée comme un intent mal formé.

Pour ajouter des points de cheminement à une ou plusieurs bornes de recharge, utilisez les paramètres suivants : qui sont toutes facultatives. Si l'une des destinations est marquée comme , le nom du point de cheminement devient obligatoire pour cette destination.

  • waypoints: liste des points de cheminement tels que décrits dans la navigation détaillée l'intention. Doit être une valeur lat-long pour les points de cheminement de la borne de recharge.

  • waypoint_types: types par point de cheminement spécifiés sous forme de nombre 0 correspond à n'importe quel arrêt (valeur par défaut) et 1 est la borne de recharge.

  • waypoint_names: noms des points de cheminement Ce champ est obligatoire pour recharger stations.

  • waypoint_power_outputs_kw: nombre doublé pour la puissance de la borne de recharge en de kilowatts. Pour les bornes de recharge, vous pouvez éventuellement spécifier un point de cheminement de la puissance de sortie, qui est utilisée comme solution de secours si la station correspondante est introuvable. Un emplacement vide signifie qu'aucune valeur n'est fournie.

Comportement de l'expérience utilisateur (UX)

Pour les intents de trajet comportant plusieurs destinations, l'écran d'aperçu de l'itinéraire est affiché, mais la navigation ne démarre pas automatiquement.

Pour un intent correctement formaté, Google Maps affiche un aperçu de l'itinéraire pour le trajet en question. L'écran d'aperçu de l'itinéraire affiche tous les points de cheminement et la destination finale de l'intent, avec des recommandations de facturation applicables.

Pour les points de cheminement ou la destination finale indiqués comme borne de recharge, Google Maps recherche un lieu correspondant dans la base de données de Google.

En cas de correspondance, Google Maps utilise les données Google pour afficher dans l'interface utilisateur et de fournir une recommandation de recharge pour le borne de recharge. Si la correspondance n'est pas trouvée, les données fournies dans l'intent pour une la borne de recharge (lat-long, nom et puissance électrique) seront utilisées pour afficher cette de recharge dans l'interface utilisateur et de fournir une recommandation borne de recharge.

Exemples

Conduis-moi à une destination finale via plusieurs bornes de recharge

L'intent suivant permet d'accéder à la destination finale, Port Macquarie (NSW), via deux bornes de recharge, ChargePoint et Evie.

Destinations dans l'ordre:

  1. Station de recharge ChargePoint (position: -32.9599188,151.6240806, puissance sortie: 6,6 kW)

  2. Station de recharge Evie (adresse: -31.9432539,152.4699808, puissance de sortie: 350 kW)

  3. Port Macquarie (Nouvelle-Galles du Sud)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
            + "&waypoint_types=1%7C1"
            + "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
            + "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Puissance de sortie inconnue

Si la valeur de la puissance de sortie est inconnue, laissez l'encoche appropriée waypoint_power_outputs_kw vide. Si tous les emplacements sont vides, il n'est pas nécessaire pour spécifier le paramètre waypoint_power_outputs_kw.

Destinations dans l'ordre:

  1. Station de recharge ChargePoint (emplacement: -32.9599188,151.6240806, puissance de sortie: inconnue)

  2. Port Macquarie (Nouvelle-Galles du Sud)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806"
            + "&waypoint_types=1"
            + "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Marquer la destination finale comme borne de recharge

Pour marquer la destination finale comme borne de recharge, spécifiez q_type, q_name. et q_power_output_kw.

Destinations dans l'ordre:

  1. Zoo de Taronga, Sydney, Australie

  2. Station de recharge ChargePoint (emplacement: -32.9599188,151.6240806, puissance de sortie: inconnue)

  3. Station de recharge Evie (adresse: -31.9432539,152.4699808, puissance de sortie: 350 kW)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
            + "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
            + "&waypoint_types=0%7C1"
            + "&waypoint_names=%7CChargePoint+Charging+Station"
            + "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);