我正在构建一个Android应用程序,它将显示谷歌地图上的某些点,我有(lat,lang)所有显示的点,与我同在。每当用户点击谷歌地图上的其中一个位置时,我就会启动一个新的谷歌地图意图,向用户显示导航,并且应该将用户带到该地点(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应用程序,以便我的应用程序知道导航已经完成。
如果导航完成后可以自动关闭谷歌地图应用程序,那么很高兴。
答案 0 :(得分:2)
正如@Daniel所提到的,您可以使用onActivityResult()
来检测用户何时回来。但是,如果您确实想要检测Google地图方向是否已完成...您可以查看通知。
所以这里的问题是,当Google地图方向是一项服务时,当它运行时,它会向通知中心发布更新。
这意味着您可以继续查看正在运行的服务,或者..获取通知中心的权限,并继续检查Google地图是否存在。
答案 1 :(得分:0)
我认为,因为您构建了导航意图并拥有坐标,所以更好的答案是为目的地或旅程中所需的任何里程碑设置地理围栏。之后,您可以使用IntentService在适当的活动中检索您的应用。
https://developer.android.com/training/location/geofencing#java