如何获得ACION_SEND意图的回调

时间:2015-09-05 11:18:05

标签: android android-intent

我试过这个

 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以及应用程序名称。任何人都可以帮助我,我被困在这里过去三天......

1 个答案:

答案 0 :(得分:3)

  

现在我的问题是我需要共享此图像的应用程序名称

如果minSdkVersion为22或更高,请使用the createChooser() that takes an IntentSender as the third parameter,因为这是了解用户选择内容的唯一方法。

如果您的minSdkVersion低于22,则必须使用PackageManagerqueryIntentActivities()创建自己的选择器式UI,以了解应在该用户界面中列出哪些活动。

  

我也为它创建了自定义对话框,但问题仍然存在

您当然知道用户在对话框中选择了什么。这就是您要从API级别22 createChooser()获得的所有内容。

  

因为当我选择像facebook这样的分享选项时,我按下了按钮,然后图像不共享,我只知道用户点击了facebook。

当然。用户可以在该其他应用程序中执行用户想要的任何操作。用户无需按BACK;用户可能无法发送任何内容。这是在用户和该应用程序之间 - 您无法使用有关用户是否执行任何操作,用户与之共享信息的信息等信息。