我的应用程序需要显示从A到B的谷歌 map 方向,但我不想把谷歌 map 放进我的应用程序中——相反,我想用一个意图启动它.这可能吗?如果是,怎么做?

推荐答案

您可以使用类似以下内容:

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);

要从当前位置启动导航,请删除saddr参数和值.

你可以使用实际的街道地址,而不是经纬度.然而,这将给用户一个对话框,让他们在通过浏览器或谷歌 map 打开它之间进行 Select .

这将直接在导航模式下启动谷歌 map :

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
    Uri.parse("google.navigation:q=an+address+city"));

UPDATE

2017年5月,谷歌推出了针对通用、跨平台的谷歌 map URL的新API:

https://developers.google.com/maps/documentation/urls/guide

您也可以将意图与新API一起使用.

Java相关问答推荐

[145007:JC_ILLEGAL_SYMBOL_CHARACTER保存时:griddb中的牧师

获取拦截器内部的IP地址

如何为具有多对多关系的实体的给定SQL查询构建JPA规范?

Listview—在Android Java中正确链接项目时出错

';com.itextpdf.ext.html.WebColors已弃用

Java 21 struct 化连接货币,需要可预知的子任务异常排序

为什么在maven中,getLast方法不适用于List?

格式中的特定回录键-值对

迁移到Java 17后,日期显示不准确

如何集成语义发布和BitBucket(Java项目)

带有Health Check的Spring Boot BuildPack打破了本机映像构建过程

如何在Cosmos DB(Java SDK)中增加默认响应大小

支持MySQL 5.6的最新Hibernate版本

来自外部模块的方面(对于Java+Gradle项目)不起作用

A.ForEach与For(类型a:集合)

在Java中比较同一多维数组的两个不同的字符串元素

在Spring Boot中使用咖啡因进行缓存-根据输出控制缓存

字符串的Gzip压缩在java11和java17中给出了不同的结果

Java中的一个错误';s stdlib SocksSocketImpl?

如何通过gradle命令行从build.gradle获得Java targetCompatibility