可以处理意图过滤器的应用程序列表



我有一个应用程序,它可以通过<意图过滤器>来处理唯一的URI。此 URI 是自定义 URI。出于安全原因,它要求移动设备上没有其他应用程序可以通过<intent-filter>处理它

现在我想找出用户设备上有多少应用程序(不是应用程序中的活动(可以处理该意图 URI.ent-filter>**

有可能做到吗?
如果可以,那么我如何获取可以在意图过滤器>中处理给定 URI 的应用程序名称列表<</p>

意图是在活动级别定义的,因此您无法直接获取应用程序列表,只能获取活动列表。然后,您可以按包名称对这些活动进行分组,从而获取具有 1 个或多个能够处理意向的活动的应用程序列表。像这样:

Intent intent = new Intent(/* define you action */);
final List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
final Set<String> packages = new HashSet<>();
if (list != null) {
for (ResolveInfo resolveInfo : list) {
packages.add(resolveInfo.activityInfo.packageName);
}
}

"包"集将包含包名称列表,引用可以处理意图的应用程序。

相关内容

最新更新