如何启动Intent以打开默认导航应用程序(例如Google Navigation或Google Maps)或让用户有机会在导航应用程序中进行选择。
提前致谢。
答案 0 :(得分:2)
尝试:
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=New+York+NY")); startActivity(i);
或者使用它,这样就会启动标准导航应用程序:
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);
如果您不想要弹出对话框,请在startActivity之前添加此行:
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
另请参阅:How to check programmatically if an application is installed or not in Android?和Android: detect when app is installed,您可以创建自己的窗口,以便用户可以在某个应用程序之间进行选择。
答案 1 :(得分:1)
您必须使用带有ACTION_VIEW和geo
数据方案的Intent。
使用geo:latitude,longitude
的问题是,Google地图只会在您的位置居中,没有任何针脚或标签。
这非常令人困惑,特别是如果你需要指向一个精确的地方或/并询问方向。
如果您使用查询参数geo:lat,lon?q=name
来标记地理位置,则会使用搜索查询并关闭纬度和经度参数。
我找到了一种方法,可以用经度和纬度对地图进行居中,并显示一个带有自定义标签的图钉,非常适合展示,并在询问路线或任何其他动作时非常有用:
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=37.423156,-122.084917 (" + name + ")");
startActivity(intent);
此意图来自官方“G apps”意图列表here。