Неявное намерение открыть Waze или Google, а затем начать навигацию

Вот чего я хочу достичь: у меня есть объект 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");

  }
}

1 ответ

Вы можете использовать App Chooser, но если вы запускаете другое приложение из своего приложения, вы можете показать стандартное или пользовательское Dialog с выбором и сделать intentWaze или же intentGoogleNav на ответ пользователя.

Другие вопросы по тегам