【问题标题】:How to open a list of maps installed in device?如何打开设备中安装的地图列表?
【发布时间】:2011-06-13 19:02:58
【问题描述】:

我想通过单击按钮打开设备上已安装地图和导航应用程序的列表。如何获取已安装的地图应用程序列表,例如:雅虎地图、谷歌地图、必应地图等。 例如,我的手机上有 AT&T 地图、谷歌地图、谷歌导航和雅虎地图。现在,当用户单击按钮时,我只想打开一个包含所有内容的列表。

【问题讨论】:

  • 只是我还是其他人对她在说什么感到困惑?
  • 一般来说,这类功能的代码看起来像Intent intent = new Intent(); intent.setType("*/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Provider"); 但是我不知道地图应用的意图
  • 谢谢,我的问题是一样的,我不知道地图的意图,那就是我在找。

标签: android map


【解决方案1】:

您需要将一个空的地理 URI 传递给意图选择器:

Intent intent = new Intent(Intent.ACTION_VIEW, "geo:0,0?q=");
startActivity(Intent.createChooser(intent, "Select application"));

如果您想获取有关支持地理 URI 的活动的信息,可以使用以下代码:

Intent intent = new Intent(Intent.ACTION_VIEW, "geo:0,0?q=");
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
    PackageManager.MATCH_DEFAULT_ONLY);

【讨论】:

  • 感谢回复,但这只会打开地图,而且我还需要导航
  • 你试过“google.navigation:q=" URI 来搜索导航活动吗?
  • 根据互联网的说法,并不是每个导航应用都会响应这个URI,所以你必须检查已知的导航应用。
  • 没错,但是如何将两者合并到一个列表中?
  • 据我所知,将其他条目添加到意图选择器列表的唯一方法是将它们传递给 Intent.EXTRA_INITIAL_INTENTS 额外的。我从来没有尝试过这个额外的,但根据文档,这些条目将被添加到列表的开头。如果您需要其他行为,那么您应该实现自己的意图选择器。考虑到资源是开放的,这并不难。
猜你喜欢
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2019-03-23
  • 2020-11-11
相关资源
最近更新 更多