Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从我的应用程序在后台启动谷歌地图应用程序_Android_Google Maps_Xamarin - Fatal编程技术网

Android 如何从我的应用程序在后台启动谷歌地图应用程序

Android 如何从我的应用程序在后台启动谷歌地图应用程序,android,google-maps,xamarin,Android,Google Maps,Xamarin,首先要注意的是,我将Xamarin用于Android,因此与Android Java有一些细微的语法差异。我在自己的Android应用程序中的一个活动中启动谷歌地图应用程序。我已经找到了如何依次启动它的导航模式,提供语音引导的方向,跳过它通常默认的常规活动。但是,默认的地图活动在进入逐轮活动之前会出现很短的时间。我可以接受 挑战在于,用户必须多次单击“后退”按钮才能返回到我的应用程序,而不是一次从轮流活动直接返回到我的应用程序,这是我更喜欢的。我知道它为什么这么做,这很自然我的应用程序是否可以在

首先要注意的是,我将Xamarin用于Android,因此与Android Java有一些细微的语法差异。我在自己的Android应用程序中的一个活动中启动谷歌地图应用程序。我已经找到了如何依次启动它的导航模式,提供语音引导的方向,跳过它通常默认的常规活动。但是,默认的地图活动在进入逐轮活动之前会出现很短的时间。我可以接受

挑战在于,用户必须多次单击“后退”按钮才能返回到我的应用程序,而不是一次从轮流活动直接返回到我的应用程序,这是我更喜欢的。我知道它为什么这么做,这很自然我的应用程序是否可以在语音引导模式下启动地图,但可以在后台启动地图,并将我的应用程序保持在前台?

我已经看到,如果我使用我的后退按钮返回到我的应用程序,逐圈语音指示就会停止。如果我使用手机底部的窗口图标查看我最近使用的所有应用程序,并在启动“地图”应用程序后将我的应用程序带到前台,语音指示会继续工作,这就是我想要的,它甚至会在我的应用程序顶部为我提供通知覆盖,这非常好。当用户想要将我的应用程序带到前台时,我不想告诉他使用该windows图标,我也不想让他使用后退按钮,因为它会停止语音指示。所以这是一个困难的地方,如果这只是你不得不忍受的电话行为之一,我不会感到惊讶,但我希望任何人都能提供任何建议甚至可能将其作为片段应用程序的一部分?但我会用它来获取他们的地图,还是同时获取完整的语音方向功能?我想我只能从他们安装的应用程序中获取,而不能从他们的库中获取。谢谢你的阅读

这是我目前的密码

public void StartNavigation(string lat, string lng)
{
    String strUri = "google.navigation:q=" + lat + "," + lng;
    Intent Intent = new Intent(Android.Content.Intent.ActionView, Android.Net.Uri.Parse(strUri));
    //Intent.SetClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
    Intent.SetPackage("com.google.android.apps.maps");
    Application.Context.StartActivity(Intent);
}

也许您可以通过使用意图标志来改变GoogleMaps活动的启动模式来解决这个问题

尝试使用该标志。e、 g:

String strUri = "google.navigation:q=" + lat + "," + lng;
Intent intent = new Intent(Android.Content.Intent.ActionView, Android.Net.Uri.Parse(strUri));
//Intent.SetClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
Intent.SetPackage("com.google.android.apps.maps");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Application.Context.StartActivity(Intent);

启动谷歌地图几秒钟后,为你自己的应用程序启动一个启动器,将其带回前台。您可能需要为此使用警报。

当我这样做时,Google Maps活动仍然处于顶部。听起来这可能实际上是不可能的谷歌地图是一个单一的任务。是的,因为我的答案似乎不正确,而且这个问题可能也没有解决方案。谢谢你们的帮助。