waze sesion puedo instalar iniciar gratis google descargar celular app android google-maps android-intent uri geo

sesion - Intención de Android para abrir Waze y Google maps



waze iniciar sesion (3)

Hay algunas publicaciones similares pero no pude encontrar una exacta. Básicamente, quiero abrir ambos mapas de Google y Waze con la misma intención. Al principio intenté esto:

final String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude); final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); startActivity(intent);

Waze navegó directamente a la ubicación correcta y Google Maps abrió el lugar correcto. luego me di cuenta de que los mapas de Google no ponen un pin en la ubicación, por lo que es difícil para el usuario saber dónde está exactamente. Así que miré a mi alrededor y me di cuenta de que los mapas de Google requieren "? Q = .. (etiqueta)" para eso ... Cambié la construcción de uri a:

final String uri = String.format(Locale.ENGLISH, "geo:%f,%f?q=%f,%f (%s)", latitude, longitude, latitude, longitude, name);

Pero luego Waze hizo 2 cosas: navegó al lugar correcto Y realizó una búsqueda en la etiqueta. Esto obligó al usuario a hacer clic en el botón Atrás para cerrar la pantalla de resultados de búsqueda y continuar con la navegación hacia el lugar correcto.

Busqué una respuesta en todas partes, pero no encontré una solución que logre ambas. Al principio pensé que no es posible y Waze tiene un error ... pero luego me di cuenta de que Facebook Messenger está haciendo exactamente lo que quiero. al hacer clic en un mensaje con una ubicación, se abrirán ambas aplicaciones: los mapas de Google tendrán un pin (con una etiqueta) y Waze navegará directamente a esa ubicación sin realizar una búsqueda.

Algunas preguntas sobre lo anterior: 1. (Por supuesto) ¿Cómo puedo lograr eso? 2. ¿Cómo puedo saber cómo se está construyendo la intención del mensajero de Facebook? (¿Puedo verlo de todos modos) 3. ¿Cuál es la razón detrás de tener la etiqueta solo con "? Q = .."?

Gracias


Mi solución final para abrir las aplicaciones Waze y GoogleMap para obtener orientación (funciona como un encanto):

String uri = ""; Intent intent; try { uri = String.format(Locale.ENGLISH,"geo:" + location.getLat() + "," +location.getLng() + "?q=" + location.getLat()+","+location.getLng()+" ("+location.getName()+")"); intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } catch (ActivityNotFoundException ex) { try { Intent unrestrictedIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); startActivity(unrestrictedIntent); } catch (ActivityNotFoundException innerEx) { getSnackbar(getResources().getString(R.string.map_install_application), Snackbar.LENGTH_LONG).show(); } }



Siguiendo la sugerencia de Nimrod, instalé la aplicación e intercepté la intención de la función de ubicación de whatsapp. Aquí está la intención completa probada en mapas y waze:

String uri = "http://maps.google.com/maps?q=loc:"+latitude+","+longitude+" ("+label+")"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); intent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); intent.setData(Uri.parse(uri)); startActivity(intent);