【问题标题】:Android - Is this possible? Different Intent based on what apps are installedAndroid - 这可能吗?根据安装的应用程序不同的意图
【发布时间】:2011-11-02 22:46:58
【问题描述】:

我有一个使用地图的应用程序。我想让用户选择他们自己的地图应用程序,例如谷歌地图、MapDroyd,或者让他们选择在浏览器中打开。 但是,我现在没有去maps.google.com/.... 或任何网站,而是去mysite.com/find.php?lat=123.456&lon=456.789

所以,我想弹出一个合适的应用程序列表,如果他们点击browser,则转到mysite.com...,如果他们点击Google Maps,则使用geo:123.456,567,890启动一个意图,同样,如果他们有MapDroyd已安装。

这还取决于他们是否首先安装了应用程序!我想最简单的方法是只使用geo: 意图,但浏览器 URL 将是 Google 的 URL,而不是我自己的!

那么,是否可以在选择浏览器时更改默认的 Google 地图 URL?

感谢您的帮助。

【问题讨论】:

    标签: android map android-intent


    【解决方案1】:

    那么,是否可以在选择浏览器时更改默认的 Google 地图 URL?

    没有。

    所以,我想弹出一个合适的应用列表

    对您想要使用的每个不同的Intent 使用PackageManagerqueryIntentActivities()。合并结果(使用HashSet 或以其他方式清除任何同时响应Intents 的内容)。在对话框中显示结果。

    This sample project 演示如何使用queryIntentActivities() 并根据所选结果启动活动。它不处理您的多个可能的Intents,也不使用对话框。

    【讨论】:

    • 感谢您的帮助。我现在来看看那个来源。我想我真正想做的是创建一个带有浏览器、谷歌地图和 mapDroyd 的弹出对话框,假设所有这些都已安装,然后为每个设置单击侦听器,然后根据每个设置,启动一个单独的意图。困难的部分是使用自定义应用程序构建对话框本身。
    猜你喜欢
    • 2020-02-06
    • 1970-01-01
    • 2012-10-26
    • 2012-02-18
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    相关资源
    最近更新 更多