android - 使用地址打开默认导航应用程序

标签 android

我如何启动 Intent 以打开默认导航应用程序(例如 Google 导航或 Google map )或让用户有机会在导航应用程序中进行选择。

提前致谢。

最佳答案

您必须将 Intent 与 ACTION_VIEW 和 geo 数据方案结合使用。

使用 geo:latitude,longitude 的问题在于 Google map 仅以您所在的点为中心,没有任何图钉或标签。

这非常令人困惑,尤其是当您需要指向一个精确的位置或/和询问方向时。

如果您使用查询参数 geo:lat,lon?q=name 来标记您的地理点,它会使用查询进行搜索并忽略纬度和经度参数。

我找到了一种方法,可以让 map 以经纬度为中心,并显示带有自定义标签的图钉,非常好用,在询问方向或任何其他操作时非常有用:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("geo:0,0?q=37.423156,-122.084917 (" + name + ")");
startActivity(intent);

此 Intent 来自官方“G apps” Intent 列表here .

关于android - 使用地址打开默认导航应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363907/

相关文章:

android - 如何在android textview中显示API级别的硬编码字符串

android - Amplify.DataStore.query 返回所有用户创建的数据,而不是仅返回所有者

android - 如何在android中的图像的触摸部分执行颜色混合

java - 如何为我的应用程序设置菜单?

android - 减少可绘制对象和文本之间的间距

android - 具有泛型类的自定义 android 适配器

android - com.squareup.okhttp.HttpResponseCache无法解析符号 'HttpResponseCache'

android - Google FusedLocationApi API 调用 onConnectionSuspended 的时间太多,我无法获取 GPS 位置

android - 如何使用 Textview 中的日期和时间设置警报管理器

android - DDMS 文件未找到错误