我正在使用发送意图(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"));
答案 0 :(得分:11)
您需要为活动选择实施自己的对话框。
要创建此类对话框,您需要使用PackageManager.queryIntentActivities()
。此方法返回List<ResolveInfo>
。
ResolveInfo
包含有关活动的一些信息(例如resolveInfo.activityInfo.packageName
),在PackageManager的帮助下,您可以获得其他信息(对于在对话框中显示活动非常有用) - 应用程序图标可绘制,应用程序标签等
在对话框(或作为对话框设置样式的活动)的列表中显示结果。单击某个项目后,创建新的Intent.ACTION_SEND
,添加所需的内容并添加所选活动的包intent.setPackage(pkgName)
。
答案 1 :(得分:1)
以上答案不再正确。
从API 22开始,可以在用户共享时检测目标应用程序。
有关详细信息,请参见:
Get IntentSender object for createChooser method in Android
https://medium.com/code-with-lisa/get-results-from-android-chooser-9cfc5445a871