获取“通过”应用分享列表

时间:2016-03-22 15:24:36

标签: android android-intent

某些应用有自定义共享列表而不是Android默认值。它是这样的: Share via custom list 如何使用send intentfilter检索应用程序?

编辑:没有一些方法可以检索应用列表。

2 个答案:

答案 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);