【问题标题】:Implicit intent to open waze or google and then start navigation打开 waze 或 google 然后开始导航的隐式意图
【发布时间】:2018-05-21 06:06:26
【问题描述】:

这是我想要实现的目标:我有 LatLng 对象。用户单击按钮,它将让用户选择 waze 或 googlemap 进行导航 (如果用户只有其中一个,只需进入应用程序并开始导航)(如果有 Waze 和 googlemap 应用程序,显示给用户,还需要有选项:只需一次并设置默认值。然后用户点击按钮,它将直接转到特定的导航应用程序并开始导航) 我知道如何为其中一个创建一个意图,但不知道为显示其中两个创建一个隐式意图。请帮助我,谢谢。

btn.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    LatLng location= new LatLng(34,118); // just for example

    String urlWaze = "https://waze.com/ul?ll="+location.latitude+","+location.longitude;
    Intent intentWaze = new Intent(Intent.ACTION_VIEW, Uri.parse(urlWaze));
    intentWaze.setPackage("com.waze");

    String uriGoogle = "google.navigation:q=" + location.latitude + "," + location.longitude;
    Intent intentGoogleNav = new Intent(Intent.ACTION_VIEW, Uri.parse(uriGoogle));
    intentGoogleNav.setPackage("com.google.android.apps.maps");

  }
}

【问题讨论】:

    标签: android google-maps navigation waze


    【解决方案1】:

    您可以使用App Chooser,但如果您从您的应用程序启动其他应用程序,您可以使用选择器显示标准或自定义Dialog,并根据用户响应设置intentWazeintentGoogleNav

    【讨论】:

    • 根据android API,选择器不能有默认应用,这意味着用户每次都必须选择。
    • 无论如何,您可以使用选择器显示自定义对话框,在应用程序中处理用户选择,将结果保存在 Perferences 中,然后启动 Google Maps 或 Waze。
    猜你喜欢
    • 2018-05-09
    • 2014-10-29
    • 2018-07-10
    • 2020-03-24
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多