导航完成后,如何从 Android 应用程序中的 google 地图获取回调

How to get a callback from google maps in Android application, when navigation is complete

我正在构建一个 android 应用程序,它将在 google 地图上显示某些点,我有 (lat,lang) 用于显示的所有点。每当用户单击 google 地图上的这些位置之一时,我都会启动一个新的 Google 地图意图,它向用户显示导航并应该将用户带到那个位置(lat,lang) .

//suppose this function is called on onclick of google maps event
    function onclick(){
            Uri gmmIntentUri = Uri.parse("google.navigation:q=32.885240,-96.763475");
            Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
            mapIntent.setPackage("com.google.android.apps.maps");
            if (mapIntent.resolveActivity(getPackageManager()) != null) {
                startActivity(mapIntent);
            }
    }

这将为用户启动导航。 现在我想要实现的是 - 每当此导航完成时,我希望将某种标志传递给我的 android 应用程序,以便我的应用程序知道导航已完成。

如果可以在导航完成后自动关闭 google 地图应用程序,那就太好了。

非常感谢任何帮助。谢谢。有人对此有任何解决方案吗?

到达目的地后,您需要在activity上调用finish()方法。所以这里是你需要在你的程序中实现的步骤。

  • 首先从用户输入中知道目的地坐标,并在方向API中传递。

    https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=API_KEY
    
  • 当您知道目的地坐标时,您可以在导航意图中单击代表该坐标的标记时传递该坐标。 (你已经完成了)

  • 利用跟踪当前位置坐标的位置侦听器接口。

  • 放置一个if...else条件,检查当前位置是否等同于目的地.

  • 当当前位置==目的地时调用activity.finish()这将最后关闭地图 activity 托管。

希望对您有所帮助!!