android - 协调启动其他应用程序的意图
Posted
技术标签:
【中文标题】android - 协调启动其他应用程序的意图【英文标题】:android - coordinates intent to launch other apps 【发布时间】:2019-05-31 19:49:33 【问题描述】:我想从我的应用分享坐标,我想让我的用户选择另一个 gps 应用并启动它们。 我有这个代码,但它只打开谷歌地图,我想让我的用户能够选择一个应用程序
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);
我该怎么做?
【问题讨论】:
如果您可以直接将它作为逗号分隔的字符串共享为 text/plain 并添加可以处理它的意图。它应该可以工作。 How to open standard Google Map application from my application?的可能重复 【参考方案1】:如果您想要一个选择器,它将向用户提供其设备中所有带有地图的应用程序,请尝试以下解决方案:
-
在清单中添加
data android:scheme="geo"
,但将意图过滤器分为 2 部分,如下所示:
代码:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo" />
</intent-filter>
之后,您可以使用地理链接。
在按钮点击或任何地方创建意图:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));```
这应该向用户提供他已安装的所有地图应用程序(Google、Waze、Locus 等)。它还显示地图上的坐标,Waze 也会自动计算路线。
如果用户没有任何地图应用程序,您还应该注意这种情况,创建一些异常。
【讨论】:
以上是关于android - 协调启动其他应用程序的意图的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Spotify 和其他 Android 音乐应用根据意图进行搜索和播放?