【发布时间】:2014-10-29 01:09:18
【问题描述】:
有一些类似的帖子,但我找不到确切的帖子。基本上,我想以相同的意图打开谷歌地图和 Waze。一开始我试过这个:
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 直接导航到正确的位置,Google 地图打开了正确的位置。然后我意识到谷歌地图并没有在位置上放置图钉,所以用户很难知道它的确切位置。所以我环顾四周,意识到谷歌地图需要“?q = ..(标签)”......我将uri结构更改为:
final String uri = String.format(Locale.ENGLISH, "geo:%f,%f?q=%f,%f (%s)", latitude, longitude, latitude, longitude, name);
但是 Waze 做了两件事:导航到正确的位置并在标签上运行搜索。这要求用户单击返回按钮以关闭搜索结果屏幕并保持导航到正确的位置。
我到处寻找答案,但未能找到同时实现两者的解决方案。 起初我认为这是不可能的,而且 Waze 有一个错误……但后来我注意到 Facebook Messenger 正在做我想做的事。单击带有位置的消息时,它将打开两个应用程序:Google 地图将有一个图钉(带有标签),而 Waze 将直接导航到该位置而无需运行搜索。
关于上述的几个问题: 1.(当然)我怎样才能做到这一点? 2. 我如何知道 Facebook Messenger 的意图是如何构建的? (无论如何我可以抓住它) 3. 标签只有“?q=..”的原因是什么?
谢谢
【问题讨论】:
-
您能否发布要求用户在 Waze 和 Google 地图之间进行选择的代码?
标签: android google-maps android-intent uri geo