【发布时间】:2017-05-12 09:36:33
【问题描述】:
我有一个应用程序,它利用以下意图在 Google 地图上显示一组地点并根据用户选择开始方向:
Intent intent =
new Intent(Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=" + Uri.encode("mykeyword") + "&z=14"));
// force to use Google maps
intent.setClassName(
"com.google.android.apps.maps",
"com.google.android.maps.MapsActivity");
intent 启动如下:
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.google.android.apps.maps")));
}
代码由我在锁定屏幕上显示的应用活动触发(感谢android:showOnLockScreen="true" 属性)。这意味着当使用意图时设备被锁定。
不幸的是,意图要求用户解锁设备才能访问 Google 地图活动。
我正在寻找一种方法来显示与意图关联的 Activity,而无需用户解锁他/她的设备。
我现在唯一的解决方案是在我自己的活动中重新实现com.google.android.maps.MapsActivity 所做的事情。不幸的是,这只是为了模仿现有的谷歌地图意图所做的大量工作(即显示给定关键字的位置、提供更改关键字的字段、显示建议列表、详细视图和方向等)。具有良好的用户体验)。
欢迎任何有关此类场景的经验或想法。
【问题讨论】:
-
面临类似问题。我得出了同样的结论,即嵌入/重新实现目标活动的功能似乎是唯一的出路。如果不需要视觉表示,我发现您至少可以开始导航。你找到其他方法了吗?
-
不幸的是,我暂时没有找到其他解决方案。谷歌地图没有在他们的清单中设置正确的标志来允许在锁定屏幕上显示他们的主要活动,真是太遗憾了。
标签: android google-maps android-intent lockscreen