4

我正在使用发送意图(ACTION_SEND)共享图像。

我想知道是否选择了任何应用程序进行共享。我该怎么做以及如何知道图像是否发送成功?

我用来分享图像的代码在这里:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/*");
share.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(new File(imageSharePath)));
startActivity(Intent.createChooser(share, "Share Image"));
4

2 回答 2

11

您需要为活动选择实现自己的对话框。

要创建此类对话框,您需要使用PackageManager.queryIntentActivities(). 此方法返回List<ResolveInfo>.

ResolveInfo包含有关活动的一些信息(例如resolveInfo.activityInfo.packageName),并且在 PackageManager 的帮助下,您可以获得其他信息(对于在对话框中显示活动很有用) - 应用程序图标可绘制、应用程序标签等。

在对话框中的列表中显示结果(或在样式为对话框的活动中)。当一个项目被点击创建新Intent.ACTION_SEND的,添加你想要的内容并添加所选活动的包intent.setPackage(pkgName)

于 2013-09-19T12:39:11.207 回答
1

上面的答案不再正确。

从 API 22 开始,可以在用户共享时检测到目标应用程序。

详情见:

获取 Android 中 createChooser 方法的 IntentSender 对象

https://medium.com/code-with-lisa/get-results-from-android-chooser-9cfc5445a871

于 2020-01-08T00:07:11.483 回答