- waze://?q=123 Main Street&navigate=yes (If you are reading this on your phone and have the app installed, these links should work)
- waze://?ll=39.4366987,-99.2806796&navigate=yes (This particular address may not work depending on where you are)
- waze://?q=Food&navigate=yes (This will pop up a list of search results)
That last example may get you thinking… I know it did for me. What about navigating to the “Home” or “Work” locations that the app set up? Surely you can just type those in as your query and Waze will be smart enough to figure it out, right?
Nope. It looks for a business named “Home” or “Work” nearby. No amount of wrangling could get it to work for me. But since I could open the app up and type Home into the search box I figured that Waze must have some built-in way to figure out if a search string is a Home/Work/Favorite versus something to search on the map for.
Navigate into downtown Waze
I decompiled the apk and discovered that Waze sends the URI down into a native code function, which makes it harder to reverse engineer. As in, I’m not even going to bother because then I’d have to teach myself assembly. So I cheated. I ran strings against libwaze.so (native code included in the Android app) to find pieces of strings which may be used to test a supplied URI and found this:
decode: valid lat %s
decode: valid lon %s
Received invalid lon/lat
decode: valid zoom %s
Oh ho ho! Some of these strings are probably used in debugging statements (decode: valid lat %s), and maybe ‘favorite=’ is too. But let’s just try a few things.
waze://?q=favorite=Home&navigate=yes (Doesn’t work!) waze://?q=favorite%3DHome&navigate=yes (Doesn’t work!)
Damn. But what about…
It works for your saved ‘Home’ and ‘Work’ locations. It also works for any place you’ve saved as a favorite. Just substitute the name you used. So feel free to set up Tasker tasks to automatically navigate all over the place.
You’re welcome, Internet.