Android 如何打开设备中安装的地图列表?

Android 如何打开设备中安装的地图列表?,android,map,Android,Map,我想通过单击按钮打开设备上已安装地图和导航应用程序的列表。如何获取已安装的地图应用程序列表,如:雅虎地图、谷歌地图、必应地图等。 例如,我的手机上有AT&T地图、谷歌地图、谷歌导航和雅虎地图。现在,当用户单击按钮时,我只想打开一个包含所有内容的列表。您需要向意向选择器传递一个空的地理URI: Intent intent = new Intent(Intent.ACTION_VIEW, "geo:0,0?q="); startActivity(Intent.createChooser(intent

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

您需要向意向选择器传递一个空的地理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);
Intent Intent=新意图(Intent.ACTION_视图,“geo:0,0?q=”);
List List=getPackageManager().QueryInputActivities(意图,
PackageManager.MATCH_(仅限默认值);

是我还是其他人对她在说什么感到困惑?通常,这类功能的代码看起来像
Intent-Intent=new-Intent();intent.setType(“*/*”);intent.setAction(intent.ACTION\u GET\u CONTENT);startActivityForResult(Intent.createChooser(Intent,“Select Provider”);
但是我不知道地图应用程序的意图Hanks,我的问题是一样的,我不知道地图的意图,这就是我正在寻找的。感谢您的回复,但这将只打开地图,同时我还需要导航。您是否尝试过“google.navigation:q=”用于搜索导航活动的URI?根据互联网,并非每个导航应用程序都响应此URI,因此您必须检查已知的导航应用程序。这是真的,但如何将两者组合在一个列表中?据我所知,向意向选择器列表添加其他条目的唯一方法是将它们传递到
intent.EXTRA_INITIAL_intent
extra。我从未尝试过这个extra,但根据文档,这些条目将添加到列表的开头。如果您需要其他行为,那么您应该实现自己的intent选择器。考虑到源代码是开放的,这并不困难。