- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
首先请注意,我使用的是适用于 Android 的 Xamarin,因此与 Android Java 存在细微的语法差异。我正在从我自己的 Android 应用程序中的 Activity 启动谷歌地图应用程序。我已经想出如何通过提供语音指导的导航模式依次启动它,跳过它通常默认的常规 Activity 。然而,默认的 map Activity 确实会在进入轮流 Activity 之前非常短暂地出现。我可以忍受这一点。
挑战在于用户必须多次点击后退按钮才能返回到我的应用,而不是一次又一次地点击后退按钮直接返回到我的应用,是我想要的。我知道它为什么这样做,这是很自然的。 有什么方法可以让我的应用程序以语音引导模式启动 map ,但在后台启动它,同时让我的应用程序保持在前台?
我已经看到,如果我使用后退按钮返回到我的应用程序,则语音提示会停止。如果我使用手机底部的窗口图标来查看我最近使用的所有应用程序,并在启动 map 应用程序后将我的应用程序带到前台,语音指导会继续工作,这正是我想要的,它甚至会在我的应用程序顶部给我通知叠加很棒的应用程序。我不想让用户在想要将我的应用程序置于前台时使用该 Windows 图标,我也不希望他使用后退按钮,因为它会停止语音指示。所以这是一个棘手的问题,如果这只是您必须忍受的电话行为之一,我不会感到惊讶,但我希望任何人都可以提供任何建议。 甚至可以将其作为 fragment 应用程序的一部分?但是,我是只获得他们的 map 还是同时获得完整的语音导航功能? 我以为我只能从他们安装的应用程序中获得该功能,而不是他们的图书馆。感谢阅读。
这是我当前的代码
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);
}
最佳答案
也许您可以使用 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);
关于android - 如何从我的应用程序在后台启动谷歌地图应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43563059/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!