首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取响应任何URL/URI-Intent的每个应用程序/活动?

如何获取响应任何URL/URI-Intent的每个应用程序/活动?
EN

Stack Overflow用户
提问于 2012-09-15 21:04:46
回答 2查看 519关注 0票数 2

假设用户安装了spotify、youtube、xbmc和glympse应用程序。

spotify-app响应“spotify:app:123”-intents,而glympse app响应"glympse.com/123"-intents。XBMC-app和YouTube-app都会响应"youtube.com/watch?v=123"-intents。

我想要得到的是每一个响应这种意图的应用程序。我不想给出一个特定的URL/URI的意图,而是希望获得响应某种URL/URI意图的每个应用程序。

如果这还不够清楚,这里有一些不能正常工作的代码,它们显示了我想要的东西(除了它只查询URI)。

代码语言:javascript
复制
getPackageManager()->queryIntentActivities(new Intent(Intent.Action_VIEW, Uri.parse("http://*")), 0)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-24 19:39:54

我想要得到的是每一个响应这种意图的应用程序。我不想给出一个特定的URL/URI的意图,而是希望获得响应某种URL/URI意图的每个应用程序。

这不能通过Android SDK直接实现。Android可以告诉你可以响应特定Intent的活动,但是你不能通过搜索注册的<intent-filter>对象来找到所有具有<data>元素和android:scheme属性的对象。

票数 4
EN

Stack Overflow用户

发布于 2012-09-15 21:30:14

为此,您可以创建一个虚拟意图(其格式与您正在研究的相同),然后使用普通的PackageManage路由查询哪些应用程序可以处理它:

代码语言:javascript
复制
Intent dummy = new Intent(Intent.ACTION_VIEW);
dummy.setData(Uri.parse("http://www.youtube.com/watch?v=QH2-TGUlwu4");

PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(dummy, 0);

// "list" now contains all apps that can handle a YT link
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12437608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档