как исправить прекращение работы приложения после открытия карты Google с указаниями из моего пользовательского приложения для Android - PullRequest
0 голосов
/ 05 апреля 2019

После того, как я открою активность на карте Google в направлении от моего пользовательского фрагмента, это приведет к прекращению работы всего приложения.

mapView.startActivity (новое намерение (Intent.ACTION_VIEW, Uri.parse ("http://maps.google.com/maps?saddr="+currlat+","+currLon+"&daddr="+destinationLat+","+destinationLon+"&travelmode=driving")));

здесь mapView означает мой обычный fragmnet.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Вот этот пример из документа разработчика Google , где вместо URL-адреса вы используете URI geo:

Этот URI работает так:

Используйте намерение geo:, чтобы отобразить карту в указанном месте и уровень масштабирования.

geo:latitude,longitude?z=zoom

Вот код, который его использует. Кроме того, он гарантирует, что Google Maps получит его, а не другое приложение, и если Maps не установлен, он просто ничего не делает, но вы можете добавить оператор else, чтобы сообщить пользователю, что ему нужны Maps для выполнения действия * 1014. *

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
    startActivity(mapIntent);
}

Чтобы запустить навигацию, используйте google.navigation:q=latitude,longitude. Начальной позицией будет текущее местоположение пользователя. См. эту часть сайта разработчика Google

Uri gmmIntentUri = Uri.parse("google.navigation:q=37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
    startActivity(mapIntent);
}
0 голосов
/ 05 апреля 2019
 Intent intent = new Intent(Intent.ACTION_VIEW,
                                Uri.parse("http://maps.google.com/maps?saddr=" + lastLocation.getLatitude() + "," + lastLocation.getLongitude() + "&daddr=" +
                                        destinationLocationLatitude + "," +
                                        destinationLocationLongitude));
                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...