我试过这个
private void postImage(Uri uri) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(Intent.EXTRA_TEXT, "My bracelet image");
intent.putExtra(Intent.EXTRA_TITLE, "Action Bracelet");
intent.putExtra(Intent.EXTRA_STREAM,uri);
Intent chooser=Intent.createChooser(intent,"Share Image Using");
try{
context.startActivity(chooser);
}
catch(ActivityNotFoundException e){
Toast.makeText(context,"You don't have any share application installed",Toast.LENGTH_SHORT).show();
Log.e("Image Load","failed");
}
}
现在我的问题是我需要共享此图像的应用程序名称。我还为它创建了自定义对话框,但问题仍然存在。因为当我选择像facebook这样的分享选项时,我按下了按钮,然后图像不共享,我只知道用户点击Facebook。 所以我需要一个回调,它给了我result_ok和result_cancle以及应用程序名称。任何人都可以帮助我,我被困在这里过去三天......
答案 0 :(得分:3)
现在我的问题是我需要共享此图像的应用程序名称
如果minSdkVersion
为22或更高,请使用the createChooser()
that takes an IntentSender
as the third parameter,因为这是了解用户选择内容的唯一方法。
如果您的minSdkVersion
低于22,则必须使用PackageManager
和queryIntentActivities()
创建自己的选择器式UI,以了解应在该用户界面中列出哪些活动。
我也为它创建了自定义对话框,但问题仍然存在
您当然知道用户在对话框中选择了什么。这就是您要从API级别22 createChooser()
获得的所有内容。
因为当我选择像facebook这样的分享选项时,我按下了按钮,然后图像不共享,我只知道用户点击了facebook。
当然。用户可以在该其他应用程序中执行用户想要的任何操作。用户无需按BACK;用户可能无法发送任何内容。这是在用户和该应用程序之间 - 您无法使用有关用户是否执行任何操作,用户与之共享信息的信息等信息。