RCB RCB - 3 months ago 59
Android Question

Navigation intent that would work with maps and waze

I'm trying to start a navigation activity with an intent from my app. I want it to start navigation from my location to a point that I provide. I've tried this way

String uri = "geo: "+String.valueOf(latitude) + "," + String.valueOf(longitude);
context.startActivity(new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(uri)));


It works great when I choose to navigate with
Waze
(it starts with the "start navigation" dialog right away), but doesnt work with
maps
(only shows the point, not the navigation option)


If I use this way

Intent intent =
new Intent(Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?" +
"&daddr=" + String.valueOf(latitude) + ","
+ String.valueOf(longitude)));
context.startActivity(intent);


Its the opposite, starting the navigation with
maps
and only showing the point with
Waze


Thanks!

Answer

've done this myself and have had no issues using it the following way:

intent.setData(Uri.parse("geo:" + getLatitude() + "," + 
getLongitude() + "?q=" + getStreet() + "+" + 
getHousenumber() + "+" + getPostalcode() + "+" + 
getCity()));

The difference is that I use "&q=" for the query as stated by Google.

See: https://developer.android.com/guide/components/intents-common.html#Maps