google.navigation: - Намерение - Android - PullRequest
0 голосов
/ 08 апреля 2020

Я только что столкнулся с проблемой, которую не мог решить сам, и должен спросить большое сообщество :) Извините за мой Engli sh, и позвольте мне описать задачу. В моем приложении мне нужно открыть приложение для внешних карт, такое как Google Maps, Waze, 2 GIS et c. с маршрутом от источника «A» к месту назначения «B».

Прежде всего, я исследовал Google Maps Intents для Android и нашел все, кроме того, которое мне нужно. Ближайшее намерение выглядит как google.navigation: q = a + улица + адрес , оно работает хорошо и дает мне выбор среди всех установленных навигационных приложений. Но это не совсем мне нужно, просто переход от текущего местоположения к указанному адресу.

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

   `private val mapsUriPrefix: String = "https://maps.google.com/maps?"
    private val sourcePrefix: String = "saddr="
    private val destinationPrefix: String = "&daddr="
    private val spaceChar: String = " "

    val navigationRoute = mapsUriPrefix
        .plus(sourcePrefix)
        .plus(addressFrom)
        .plus(destinationPrefix)
        .plus(addressTo)

    val mapIntent = Intent(Intent.ACTION_VIEW)
    mapIntent.data = Uri.parse(navigationRoute)
    mapIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    startActivity(mContext, mapIntent, null)`

, и этот код делает именно то, что Мне нужно, но я не могу выбрать приложение для навигации - открываются только Карты Google (с маршрутом) или веб-браузер, если Карты Google не установлены. Надеюсь, я полностью описал свою боль и прошу любой помощи или совета. Заранее спасибо!

...