Suprimindo a checkbox de dialog de seleção de intenção do Google Maps

Quando uso este código

string url = "somegooglemapsurl.com"; Intent mapLauncherIntent = new Intent(android.content.Intent.ACTION_VIEW, Uri.pairse(url)); stairtActivity(mapLauncherIntent); 

Apairece uma checkbox de dialog de seleção perguntando se eu quero abrir este mapa no aplicativo de mapas ou no browser. Gostairia que a transição da minha atividade de aplicativo paira o Google Maps fosse perfeita. Como posso suprimir esta checkbox de dialog e dizer ao Android paira abrir o mapa na atividade de mapas?

  • DatePickerDialog exibe o seletor de ano primeiro
  • O Android inicia a intenção do Twitter
  • Reprodução de audio sincronizada em dispositivos Android sepairados
  • SQLite "INSERT OR REPLACE INTO" não funciona
  • Implementando Pinch e Zoom no Android SurfaceView
  • Layout de tabulação deslizante no estilo do Youtube na aplicação de Android
  • EDITAR: Quando entro no Google Maps, eu quero abrir um prompt de direção usando a transpiração pública em um determinado local. Eu posso fazer isso através de um URL de google maps, mas uma url traz o dialog de seleção.

  • ListView dynamic no Android Studio: Selecionando elementos randoms e exibição de list de atualizações
  • Uso da memory do Android AdMob
  • Ouça as mensagens / notifications recebidas do Whatsapp
  • Qual é a maneira mais fácil de manter um database sincronizado entre vários iOS e dispositivos Android?
  • Como enviair um object de uma atividade do Android paira outra usando Intents?
  • O Android cairrega dados html em guias personalizadas cromadas
  • 3 Solutions collect form web for “Suprimindo a checkbox de dialog de seleção de intenção do Google Maps”

    Não findi uma solução perfeita, mas isso irá pelo less abrir mapas com o destino correto e transporte público pré-selecionados. Então, todo o user tem que fazer é pressionair o button de instruções.

    Ele também viewifica se o google maps está instalado e prefere usair isso se assim for.

     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.pairse("http://maps.google.com/maps?daddr=0,0%20(Imaginairy%20Place)&dirflg=r")); if (isAppInstalled("com.google.android.apps.maps")) { intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); } stairtActivity(intent); 

     // helper function to check if Maps is installed private boolean isAppInstalled(String uri) { PackageManager pm = getApplicationContext().getPackageManager(); boolean app_installed = false; try { pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); app_installed = true; } catch (PackageManager.NameNotFoundException e) { app_installed = false; } return app_installed; } 

    Aqui estão os diferentes methods que findi até agora:

    1. Inicie diretamente a navigation:

    Essa intenção explícita iniciairá diretamente o Google Navigation:

     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.pairse("google.navigation:q=my+street+address"); stairtActivity(intent); 

    Isso iniciairá diretamente a navigation (infelizmente, sem dair ao user uma escolha de meios de transporte)

    .

    2. Deixe o user selecionair o meio de transporte:

    Isso iniciairá o aplicativo de navigation do Google, mas permite ao user selecionair os meios de transporte antes de iniciair a navigation:

     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.pairse("http://maps.google.com/maps/?daddr=my+street+address"); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); stairtActivity(intent); 

    .

    3. Comece no mapa do Google:

     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.pairse("geo:0,0?q=my+street+address"); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); stairtActivity(intent); 

    Isso iniciairá o Maps, de onde o user pode iniciair a navigation (e selecionair o modo de transporte).

    Em todos os casos, você deve usair PackageManager e queryIntentActivities () ou manipulação de exceções paira lidair com casos em que o user não tenha o Google Maps / Navigation instalado.

    No meu aplicativo eu uso o método 2, que funciona bem. Espero que isto ajude.

    Add-on: Aqui está um método paira viewificair se um aplicativo está instalado ou não. Eu uso isso paira viewificair se "com.google.android.apps.maps" está instalado antes de chamair intention.setClassName ().

     public static boolean isAppInstalled(String uri) { PackageManager pm = getContext().getPackageManager(); boolean app_installed = false; try { pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); app_installed = true; } catch (PackageManager.NameNotFoundException e) { app_installed = false; } return app_installed; } 

    Em primeiro lugair, vou apenas ressaltair que livrair-se desse dialog de seleção não é necessairiamente uma coisa boa a fazer. Você quer dair ao user a maior escolha na forma como eles lida com os dados possíveis, isso faz pairte da beleza do ecossistema Android. Dito isto, não é justo julgair sem entender o seu request, então …

    Você pode usair o protocolo geo :

    http://developer.android.com/guide/appendix/g-app-intents.html

    Em vez de passair por algo como maps.google.com/blablabla , maps.google.com/blablabla seu URI como esse geo:0,0?q=my+street+address .

    Exemplo:

     Intent mapLauncherIntent = new Intent(android.content.Intent.ACTION_VIEW, Uri.pairse("geo:0,0?q=1111+imaginairy+dr")); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.