android - 使用 android 意图开始导航
问题描述
我有在外部应用程序上开始导航的方法。方法适用于谷歌地图和 sygic。但用户开始报告他们即使使用 Waze 也可以打开导航,但不会通过意图传输数据(因此他们只能看到 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)))
}
我在这里错过了什么?是否有任何通用选项如何支持所有可能的应用程序,或者我应该制作自定义底部表以自行处理大多数使用的?
解决方案
不幸的是,没有通用的导航意图。因此,您必须处理要支持的应用程序并通过以下方式打开它们Intent.ACTION_VIEW
尝试像这样设置位智网址:
val wazeUrl = "https://waze.com/ul?ll=$latitude%2C$longitude&navigate=yes"
推荐阅读
- aws-lambda - AWS Lambda 如何访问本地 sql server
- xslt-2.0 - 如何删除包括第一个实例在内的重复项并仅包含唯一的非重复节点?
- c++ - 在装箱问题中找到所有可能的变化
- java - jdk1.7.0.79的ojdbc jar版本
- javascript - 何修复“else if”“”未定义?
- sql-server - 如何从 ms-sql 服务器目录中检索数据
- android - 如何使用 LinPhone SDK 发送消息?
- php - 如何在学说中获取下一个 table_id_seq (primary_key) 的值?
- php - 在 Woocommerce 商店和产品类别页面上显示高级自定义字段
- qt - 按类型转换时获取子类 qgraphicsitem 坐标