【问题标题】:How to launch google maps app in the background from my app如何从我的应用程序在后台启动谷歌地图应用程序
【发布时间】:2018-04-14 01:55:23
【问题描述】:

首先请注意,我使用的是适用于 Android 的 Xamarin,因此与 Android Java 存在细微的语法差异。我正在从我自己的 Android 应用程序中的一个活动中启动谷歌地图应用程序。我已经想出了如何通过轮流导航模式依次启动它,提供语音引导方向,跳过它通常默认的常规活动。但是,默认的地图活动在轮流进入活动之前确实会非常短暂地出现。我可以忍受这一点。

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

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

这是我当前的代码

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);
}

【问题讨论】:

    标签: android google-maps xamarin


    【解决方案1】:

    也许您可以使用 Intent 标志更改 Google Maps Activity 的启动模式来解决这个问题。

    尝试使用FLAG_ACTIVITY_NEW_TASK 标志。例如:

    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);
    

    【讨论】:

    • 当我这样做时,谷歌地图活动仍然保持在最前面。听起来这可能实际上是不可能的。 :/ stackoverflow.com/questions/40364326/…
    • 谷歌地图是单一任务。
    • 是的,看来我的回答不正确,问题也可能没有解决方案。谢谢你们的帮助。
    【解决方案2】:

    在启动 Google 地图几秒钟后,为您自己的应用启动一个启动器意图,将其带回前台。您可能需要为此使用闹钟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      相关资源
      最近更新 更多