检查是否有应用监听我的意图
Check if there is an app listening to my intent
如何知道我要发布的意向是否会被提前回复?
构建意图后,我尝试了这个,但它不起作用:
Intent fc = ....
PackageManager manager = context.getPackageManager();
List<ResolveInfo> list = manager.queryIntentActivities(fc, 0);
startActivityForResult(fc, 1);
尽管 list
有 0 个元素,但 intent 打开了一个应用程序。
或者,设置 MATCH_ALL 以防止对结果进行任何过滤
public static final int MATCH_ALL = 131072;
还有更多标志可以尝试。将 0 替换为其他。
在 Android 11 及更高版本上,要在 PackageManager
上使用许多(大多数?)方法,您需要在清单中包含一个 <queries>
元素,用于标识应用程序(或您要通过 PackageManager
查找的应用标准)。如果没有 <queries>
元素,package visibility 规则会将您的结果限制为您自己的应用程序和一些系统应用程序。
如何知道我要发布的意向是否会被提前回复?
构建意图后,我尝试了这个,但它不起作用:
Intent fc = ....
PackageManager manager = context.getPackageManager();
List<ResolveInfo> list = manager.queryIntentActivities(fc, 0);
startActivityForResult(fc, 1);
尽管 list
有 0 个元素,但 intent 打开了一个应用程序。
或者,设置 MATCH_ALL 以防止对结果进行任何过滤
public static final int MATCH_ALL = 131072;
还有更多标志可以尝试。将 0 替换为其他。
在 Android 11 及更高版本上,要在 PackageManager
上使用许多(大多数?)方法,您需要在清单中包含一个 <queries>
元素,用于标识应用程序(或您要通过 PackageManager
查找的应用标准)。如果没有 <queries>
元素,package visibility 规则会将您的结果限制为您自己的应用程序和一些系统应用程序。