某些应用有自定义共享列表而不是Android默认值。它是这样的:
如何使用send
intentfilter检索应用程序?
编辑:没有一些方法可以检索应用列表。
答案 0 :(得分:1)
您可以使用PackageManager.queryIntentActivities(Intent, int)获取此活动列表。
检索可以为给定意图执行的所有活动。
对于共享纯文本,只需执行类似
的操作Intent intent = new Intent(android.content.Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_SUBJECT, "Subject of share")
.putExtra(Intent.EXTRA_TEXT, "Some text here")
.setType("text/plain");
List<ResolveInfo> shareWith = getPackageManager().queryIntentActivities(intent, 0);
对于其他数据类型,您只需调整ACTION_SEND
的意图。
答案 1 :(得分:0)
您可以使用下面的代码段获取可以解析特定意图的活动列表。
你可以假设itemsThatCanResolveYourIntent.size == 0
如果本意不能处理意图。
Intent yourIntent = new Intent(...);
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> itemsThatCanResolveYourIntent = packageManager.queryIntentActivities(yourIntent, 0);