Android-приложение, вызывающее карту Google с автомобилем, общественностью, средствами управления ходьбой - PullRequest
2 голосов
/ 16 февраля 2012

У меня проблемы с переносом некоторых функций приложения Iphone на Android. В основном приложение Google Map для iphone, которое вызывается из этого приложения, выглядит следующим образом

enter image description here

Я пытался скопировать подобное поведение, используя этот псевдокод

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr="+LAT_POSITION+","+LONG_POSITION+"&daddr="+Lat+","+Lon + "&dirflg=w"));
startActivity(intent);

что он делает, это приложение для Android-карты в этой форме

enter image description here

поэтому, когда я нажимаю Показать карту, я получаю

enter image description here

и затем, когда я дважды нажимаю назад, я получаю это

enter image description here

мои вопросы.

Как я могу получить элементы управления (машина, общественность, прогулка), наложенные на карту? как в приложении для iphone - на одном экране (другие элементы тоже, если это возможно)

дополнительный вопрос .. Как включить отображение карты по умолчанию? (вместо текстовых указаний это происходит в Android 2.2 - я проверил samsung galaxy с froyo), в 4.0 (эмулятор) карта отображается по умолчанию, но все еще нет элементов управления наложением (машина, общественность, прогулка).

1 Ответ

2 голосов
/ 17 февраля 2012

Вы можете использовать setComponent, чтобы явно указать приложению Maps использовать com.google.android.maps.MapsActivity для разрешения намерения:

Intent intent = new Intent(Intent.ACTION_VIEW, 
    Uri.parse("http://maps.google.com/maps?saddr=" + LAT_POSITION + "," + LONG_POSITION +
    "&daddr=" + lat + "," + lon + "&dirflg=w"));
intent.setComponent(new ComponentName("com.google.android.apps.maps", 
    "com.google.android.maps.MapsActivity"));
startActivity(intent);

Вы должны получить оверлей с указаниями, но я не уверен, что он будет рисовать маршрут, пока пользователь не нажмет "Go".

Конечно, это "не API" и предполагает, что Карты установлены на устройстве, и что Google не будет изменять внутренний пакет или имя класса для MapsActivity.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...