Intents de Google Maps para Android Automotive

Renuncia de responsabilidad

Este producto o función cambiará y no está sujeto a ningún acuerdo de nivel de servicio (ANS). política de baja del servicio. La implementación está sujeta a cambios en versiones futuras.

Con respecto al software de muestra, los archivos de datos o el código fuente que acompañan a esta documentación: El producto se proporciona “tal cual” sin garantías de ningún tipo, y Google renuncia expresamente a cualquier y todas las garantías, ya sean expresas, implícitas, legales o de otro tipo, incluidas, sin limitarse a ello, garantías de comerciabilidad, adecuación para un fin determinado y no incumplimiento de ningún derecho relacionados con este producto.


Con los intents de Android Automotive, puedes iniciar la navegación en Google Maps.

Para obtener más información, consulta Intents de Google Maps para Android.

Para obtener más información sobre cómo llevar tu app a vehículos con Android Auto o SO Android Automotive, consulta Android para vehículos

Descripción general

En esta página, se describen los intents que puedes usar con Google Maps para Android. Industria automotriz. Si deseas obtener documentación detallada para desarrolladores de Android, lee lo siguiente:

Solicitudes de intents

Si quieres iniciar Google Maps para Android Automotive con un intent, primero debes crear un objeto Intent y especificar su acción, URI y paquete.

  • Acción. Todos los intents de Google Maps se denominan una acción View, ACTION_VIEW

  • URI. Los intents de Google Maps usan cadenas codificadas con URI que especifican junto con algunos datos para realizar la acción.

  • Paquete. Llamar a setPackage("com.google.android.apps.maps") garantiza que la app de Google Maps para Android maneja el intent. Si el paquete no está , el sistema determina qué apps pueden controlar el intent. Si hay varios disponibles, es posible que se te pregunte qué app quieres usar.

Después de crear el intent, puedes solicitar que el sistema inicie los procesos aplicación de varias maneras. Un método común es pasar el intent a la [startActivity()]. El sistema iniciará la app necesaria, en este caso, Google Maps y, luego, iniciar la Activity correspondiente.

// 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 el sistema no puede identificar una app que pueda responder al intent, tu app puede fallar. Por este motivo, primero verifica que la aplicación receptora esté instalar antes de presentar uno de estos intents a un usuario.

Para verificar que una app esté disponible para recibir el intent, llama a [resolveActivity()] en tu objeto [Intent] Si el resultado no es nulo, hay al menos una app que puede controlar el intent y es seguro llamar [startActivity()] Si el resultado es nulo, no debes usar el intent si es posible, inhabilita la función que invoca el intent.

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

Por ejemplo, para iniciar la navegación paso a paso hasta el Taronga Zoo en Sídney, puedes usar el siguiente código:

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

Cadenas de consulta con codificación de URI

Todas las cadenas pasadas a las intenciones de Google Maps deben tener codificación de URI. Por ejemplo: la cadena "1.a y Pike, Seattle" debe convertirse en 1st%20%26%20Pike%2C%20Seattle. Los espacios de la cadena se pueden codificar con %20 o reemplazar por el signo más (+).

Puedes usar el método android.net.Uri parse() para codificar tus cadenas. Por ejemplo:

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

Inicia la navegación paso a paso

Usa esta intención para iniciar la navegación de Google Maps con instrucciones paso a paso hacia con una o varias direcciones o coordenadas especificadas. Siempre se proporcionan instrucciones sobre cómo llegar de la ubicación actual del usuario.

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

Parámetros

Para iniciar la navegación, usa place o q con waypoints, que son opcionales. Si deseas marcar un punto de referencia como estación de carga de manera opcional, consulta Cómo enviar un plan de viaje en vehículo eléctrico a Google Maps.

  • q establece el punto de destino para las búsquedas de navegación. Puede ser un o una dirección con formato de consulta. Si se trata de una cadena de consulta devuelve más de un resultado, se seleccionará el primero.

  • place establece el extremo como dirección particular o de trabajo. Especifica la casa a la que quieres ir la casa del usuario y el trabajo para navegar al lugar de trabajo del usuario.

  • avoid establece los componentes que la ruta debe intentar evitar. avoid es opcional y se pueden establecer en una o más de las siguientes opciones:

    • t para peajes
    • h para autopistas
    • f para ferris
  • waypoints especifica uno o más lugares intermedios hacia los cuales dirigir las instrucciones sobre cómo llegar. el destino final especificado por q. Puedes especificar varios puntos de referencia usando el carácter de barra vertical (|) para separar los lugares, por ejemplo, Berlin,Germany|Paris,France Puedes usar tantos puntos de referencia como sea necesario. Los puntos de referencia se agregarán a la ruta en el mismo orden en que estén que se indica en la URL. Cada punto de referencia puede ser una dirección o estar separado por comas coordenadas de latitud y longitud; tener direcciones y valores de latitud y longitud coordenadas en el mismo intent. Las cadenas deben tener escapamiento de URL puntos de referencia como "Berlín,Alemania|París,Francia" debe convertirse en Berlin%2CGermany%7CParis%2CFrance

Ejemplos

Este intent solicitará navegación paso a paso hasta el Taronga Zoo, en Sídney, Australia:

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 prefieres no pagar peajes ni viajar en transbordador, puedes solicitar rutas que intenta evitar estas situaciones:

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

O bien, si prefieres navegar a tu casa, usa:

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

Para iniciar la navegación paso a paso a las siguientes tres direcciones en orden, Pasar el zoológico de Taronga como destino final q y Google Sídney y Sídney La Ópera de Sídney como puntos de referencia:

  1. Google Sídney

  2. Ópera de Sidney

  3. Zoológico Taronga, Sídney, Australia

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

Al igual que con q, puedes representar cualquiera de los puntos de referencia con una coma separada por comas. de latitud y longitud en lugar de una dirección. Por ejemplo, para lanzar misma navegación mientras se pasa la latitud y longitud para la Ópera de Sídney en su lugar de la dirección:

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

Enviar un plan de viaje en vehículo eléctrico a Google Maps

Usa este intent de navegación de varios destinos para especificar algunos destinos como paradas de carga de vehículos eléctricos (VE). Este intent, que extiende el intent de varios puntos de referencia, ayuda a los conductores a mantener una cantidad suficiente de vehículos eléctricos la carga de la batería para llegar a sus destinos sincronizando la información de las paradas de carga entre apps de planificación de viajes en VE y Google Maps.

En el caso de las paradas de carga, los intents de viaje tienen las siguientes características:

  • Debe contener el nombre y las coordenadas de latitud y longitud
  • De manera opcional, puede contener la potencia de salida, que se usará para calcular el tiempo de carga

Google usa el nombre de la estación de carga y las coordenadas de latitud/longitud para encontrar una coincidencia de carga lugar de la estación para mostrar datos enriquecidos, como el conector tipos, totales, velocidades y disponibilidad en tiempo real, formas de pago admitidas y los lugares de interés que aloja. Por ejemplo, las rutas en auto en estacionamientos exteriores para la parte final de la navegación, el horario de atención, de clasificación. Para garantizar que las estaciones de carga coincidan bien con los datos de Google, Usa <brand name>, por ejemplo, ChargePoint.

Parámetros

Destino final

Para establecer una estación de carga como destino final, usa una de las siguientes opciones:

  • q: Debe incluir el valor de latitud y longitud de la estación de carga.
  • q_type: 1 especifica que el destino final es una estación de carga.
  • q_name: Es el nombre del destino final. Obligatorio si q_type es 1.
  • q_power_output_kw: Es un número doble que indica la salida de energía de la estación de carga. kilovatios. Opcional.

Hitos

Para los puntos de referencia, todos los parámetros son arrays paralelos, separados por | de valores en el mismo orden que los puntos de referencia, sin incluir el destino final. Una discrepancia en la cantidad de elementos en arrays paralelos se trata como una con formato incorrecto.

Para agregar uno o más puntos de referencia de estaciones de carga, usa los siguientes parámetros: todas son opcionales. Si uno de los destinos está marcado como destino estación, el nombre del punto de referencia se vuelve obligatorio para ese destino.

  • waypoints: Lista de puntos de referencia como se describe en la navegación paso a paso. . Debe ser un valor de latitud/longitud para los puntos de referencia de la estación de carga.

  • waypoint_types: Tipos por punto de referencia especificado como número. 0 es cualquier parada (valor predeterminado) y 1 es la estación de carga.

  • waypoint_names: Nombres de puntos de referencia. Este campo es obligatorio para realizar la carga. estaciones de carga.

  • waypoint_power_outputs_kw: Números dobles para la alimentación de la estación de carga kilovatios. Para las estaciones de carga, puedes especificar opcionalmente un punto de referencia. valor de la potencia de salida, que se utiliza como resguardo si la estación coincidente se no se encontró. Un espacio vacío significa que no se proporcionó ningún valor.

Comportamiento de la experiencia del usuario (UX)

Para los intents de viaje con varios destinos, la pantalla de resumen de la ruta es pero la navegación no se inicia automáticamente.

Para que el intent tenga el formato correcto, Google Maps presentará una descripción general de la ruta. pantalla del viaje. La pantalla de información general de la ruta mostrará todos los puntos de referencia y el destino final del intent, con recomendaciones de carga en las que que corresponda.

Para cualquier punto de referencia o destino final marcado como estación de carga, Google Maps buscará un lugar que coincida en la base de datos de Google.

Cuando se encuentra una coincidencia, Google Maps usa los datos de Google para mostrar el indicador de carga estación en la interfaz de usuario (IU) y proporcionar una recomendación de carga para el estación de carga. Si no se encuentra la coincidencia, los datos proporcionados en el intent para una de carga (lat-long, nombre y potencia de salida) para mostrar este estación de carga en la IU y proporciona una recomendación de carga en esta estación de carga.

Ejemplos

Navega a un destino final a través de varias estaciones de carga

El siguiente intent navega al destino final, Port Macquarie NSW, mediante dos estaciones de carga: ChargePoint y Evie.

Destinos en orden:

  1. Estación de carga ChargePoint (ubicación: -32.9599188,151.6240806, alimentación salida: 6.6 kw)

  2. Estación de carga Evie (ubicación: -31.9432539,152.4699808, potencia de salida: 350kw)

  3. Port Macquarie NSW

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

Potencia desconocida

Si se desconoce el valor de la potencia de salida, deja la ranura correspondiente de waypoint_power_outputs_kw está vacío. O bien, si todas las ranuras están vacías, no es necesario para especificar el parámetro waypoint_power_outputs_kw.

Destinos en orden:

  1. Estación de carga ChargePoint (ubicación: -32.9599188,151.6240806, potencia de salida: desconocida)

  2. Port Macquarie NSW

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

Marcar el destino final como estación de carga

Para marcar el destino final como una estación de carga, especifica q_type, q_name. y q_power_output_kw.

Destinos en orden:

  1. Zoológico Taronga, Sídney, Australia

  2. Estación de carga ChargePoint (ubicación: -32.9599188,151.6240806, potencia de salida: desconocida)

  3. Estación de carga Evie (ubicación: -31.9432539,152.4699808, potencia de salida: 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);