使用 android 意图开始导航

Posted

技术标签:

【中文标题】使用 android 意图开始导航【英文标题】:Starting navigation with android intent 【发布时间】:2021-05-31 17:51:14 【问题描述】:

我有在外部应用程序上开始导航的方法。方法适用于谷歌地图和 sygic。但用户开始报告他们即使使用 Waze 也可以打开导航,但不会通过 Intent 传输数据(因此他们只能看到 Waze 主屏幕)。

我找到了正确的 uri 来启动 waze,但我会放弃其他选项。

private fun startNavigation(lat: Double, lon: Double) 
    val uri = "google.navigation:q=$lat,$lon" //google maps, sygic - ok, waze - fail
    //val uri = "waze://?ll=$lat,$lon&navigate=yes" //waze only
    //val uri = "google.navigation:q=$lat,$lon&ll=$lat,$lon&navigate=yes" //google maps, waze - ok, sygic - fail

    startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(uri)))

我在这里遗漏了什么?是否有任何通用选项如何支持所有可能的应用程序,或者我应该制作自定义底页以自行处理大多数使用的?

【问题讨论】:

【参考方案1】:

不幸的是,导航没有通用的意图。所以你必须照顾你想要支持的应用程序并通过Intent.ACTION_VIEW打开它们

尝试像这样设置位智网址:

val wazeUrl = "https://waze.com/ul?ll=$latitude%2C$longitude&navigate=yes"

For further information have a look at this medium post

【讨论】:

以上是关于使用 android 意图开始导航的主要内容,如果未能解决你的问题,请参考以下文章

使用 android 意图在特定时间打开 youtube 视频

3.5 意图Intent的概念

Kivy 使用预填充的联系人字段启动 android 意图

Android - 带有标志的待处理意图

sdcard的android意图准备好了

Android:从存储访问框架获得的 URI 中使用意图选择器打开文件