2014-01-12 2 views
-2

Я ищу в Интернете, как открыть приложение карты Google, которое я установил на своем устройстве Android с кнопкой в приложении для Android. но я не могу найти его. Я хочу использовать приложение google map для перехода к определенному месту. Можете ли вы дать мне учебник, какой-то код или, возможно, ссылку на сайт для меня?Вызовите приложение Google map из моего проекта приложения

+0

см http://stackoverflow.com/questions/6205827/how-to-open-standard-google-map-application-f rom-my-application –

ответ

3

Вы также можете просто использовать http://maps.google.com/maps в качестве URI

String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f", sourceLatitude, sourceLongitude, destinationLatitude, destinationLongitude); 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
startActivity(intent); 

или убедитесь, что приложение Google Maps используется только это останавливает фильтр намерений (диалог) от появления Используйте

intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 

например:

String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f", sourceLatitude, sourceLongitude, destinationLatitude, destinationLongitude); 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
startActivity(intent); 

или добавить метки к местоположениям, добавив строку в боковые круглые скобки после каждого набора координат, как так:

String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?saddr=%f,%f(%s)&daddr=%f,%f (%s)", sourceLatitude, sourceLongitude, "Home Sweet Home", destinationLatitude, destinationLongitude, "Where the party is at"); 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
startActivity(intent); 

Чтобы использовать пользователям текущее местоположение в качестве отправной точки (к сожалению, я не нашел способ маркировать текущее местоположение), то просто понизиться параметр saddr как следующим образом:

String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?daddr=%f,%f (%s)", destinationLatitude, destinationLongitude, "Where the party is at"); 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
startActivity(intent); 

для полноты, если пользователь не имеет карты приложение установлено, то это будет хорошая идея, чтобы поймать ActivityNotFoundException, как состояния @TonyQ, то мы можем начать деятельность снова без ограничивает ограничение на использование приложений, мы можем быть уверены, что мы никогда не доберемся до Тоста в конце с момента выхода в интернет браузер является допустимым приложением для запуска этой схемы URL.

 String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?&daddr=%f,%f (%s)", 12f, 2f, "Where the party is at"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
     intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
     try 
     { 
      startActivity(intent); 
     } 
     catch(ActivityNotFoundException ex) 
     { 
      try 
      { 
       Intent unrestrictedIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
       startActivity(unrestrictedIntent); 
      } 
      catch(ActivityNotFoundException innerEx) 
      { 
       Toast.makeText(this, "Please install a maps application", Toast.LENGTH_LONG).show(); 
      } 
     } 
+0

Если я неправильно понял ваше примечание выше, чтобы использовать текущее местоположение пользователя в качестве отправной точки, с меткой, просто используйте googleMap, чтобы получить текущее местоположение и передать его как sourceLatitude и sourceLongitude – Zvi

0

Или, для проверки, если установлен Google Map App на устройстве, вы можете использовать этот код небольшой:

if (intentLocation.resolveActivity(getPackageManager()) != null) { 
      startActivity(intentLocation); 
     } else { 

Toast.makeText(this, R.string.app_not_available, 
         Toast.LENGTH_LONG).show(); 

// или если вы в View.OnClickListener использования YourActivity.this

Toast.makeText(YourActivity.this, R.string.app_not_available, 
         Toast.LENGTH_LONG).show(); 
      } 
0

Я знаю, что это другой язык, но вы можете вычесть, как это сделать это на вашем языке от того, что я достиг на андроид оболочки:

Это показывает карту без маркера:

am start -a android.intent.action.VIEW -d geo:47.6,-122.3 

Это показывает карту, с маркером:

am start -a android.intent.action.VIEW -d geo:47.6,-122.3?q=47.6,-122.3 

И тогда Я, наконец, получил его:

am start -a android.intent.action.VIEW -d google.navigation:q=47.6,-122.3 
Смежные вопросы