gpt4 book ai didi

android - 如何获取所有提供具有特定模式的 Intent 的应用程序?

转载 作者:行者123 更新时间:2023-11-30 02:30:32 26 4
gpt4 key购买 nike

实际上我有这段代码来获取所有提供具有完整指定操作名称的 Intent 的应用。

public List<ResolveInfo> getAll() {
Intent intent = new Intent("com.example.intent.A");

final PackageManager mgr = mContext.getPackageManager();
List<ResolveInfo> list = mgr.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);

return list;
}

我如何获取所有提供自定义 Intent 且具有由模式指定的操作名称的应用?

我会仅指定操作名称的第一部分,例如 com.example.intent.*,然后获取响应该 Intent 的所有应用:

  • com.example.intent.A
  • com.example.intent.BBBB
  • com.example.intent.CCC
  • ...等等

请务必注意,此应用程序不知道 Intent 的全名。

最佳答案

我同意@CommonsWare 的观点。这不可能。 Android 通过精确匹配 ACTION 字符串来支持 Intent 解析,因此它不需要支持您想要的功能。

理论上,您可以从 PackageManager 请求所有已安装包的列表,然后扫描每个包中的所有 Activity ,查看 ActivityInfo 对象和关联的 Intent 过滤器.遗憾的是,无法获取与 Activity 关联的 Intent 过滤器(这很方便地被排除在 ActivityInfo 类之外)。

关于android - 如何获取所有提供具有特定模式的 Intent 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27400941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com