android - 适用于 map 和位智的导航 Intent

标签 android android-intent android-navigation

我正在尝试根据我的应用的 Intent 启动导航 Activity 。我希望它从我的位置开始导航到我提供的点。这个方法我试过了

String uri = "geo: "+String.valueOf(latitude) + "," + String.valueOf(longitude);
context.startActivity(new Intent(android.content.Intent.ACTION_VIEW,
                            Uri.parse(uri)));

当我选择使用 Waze 导航时效果很好(它会立即从“开始导航”对话框开始),但不适用于 maps(仅显示点,而不是导航选项)

如果我用这种方式

Intent intent = 
            new Intent(Intent.ACTION_VIEW,
                    Uri.parse("http://maps.google.com/maps?"  + 
                            "&daddr=" + String.valueOf(latitude) + "," 
                             + String.valueOf(longitude)));
context.startActivity(intent);

相反,从 maps 开始导航,只用 Waze

显示点

谢谢!

最佳答案

我自己完成了这项工作,并且通过以下方式使用它没有任何问题:

intent.setData(Uri.parse("geo:" + getLatitude() + "," + 
    getLongitude() + "?q=" + getStreet() + "+" + 
    getHousenumber() + "+" + getPostalcode() + "+" + 
    getCity()));

不同之处在于我使用“&q=”作为谷歌所述的查询。

参见: https://developer.android.com/guide/components/intents-common.html#Maps

关于android - 适用于 map 和位智的导航 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22231297/

相关文章:

android - Jellybean 4.2 是否有连接到已定义 VPN 的 Intent ?

android - 如何使用导航组件从一个 Activity 导航到另一个 Activity 并从堆栈中删除第一个 Activity ?

Android:为什么点击 backstack 的 Intent 通知会破坏父 MainActivity?

java - 如何删除谷歌地图标记并替换为新的? HTTP请求

android - 如何在 Realm 中保存和加载数据

android - 从 FLAG_ACTIVITY_CLEAR_TOP Intent 标志开始捕获 Activity

java - RecyclerView 中的 OnClickListener 具有图像、文本

android - 在导航组件中以编程方式管理 Fragment BackStack

java - Gradle 同步失败 : Cause: error in opening zip file Corrupt Dependency Cache

Android 自定义按钮可绘制 XML 文件