如何知道在Android中的Intent.ACTION_SEND中选择了哪个意图

时间:2015-10-05 20:13:53

标签: android android-intent android-bluetooth

想要使用Android Intent.ACTION_SEND快速分享内容。我写了一些代码,我可以显示自定义剪切对话框 但我想检查意图是否在Intent.ACTION_SEND中选中,例如,如果我从Gmail发送一些文件我想显示Toast消息(从Gmail发送的消息等) 这是我的来源

 PackageManager pm = mActivity.getPackageManager();


    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("image/jpeg");
    Uri photoUri = Uri.parse(path);
    shareIntent.putExtra(Intent.EXTRA_TEXT,  "Downloading your app");

    shareIntent.putExtra(Intent.EXTRA_STREAM, photoUri);


    List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
    for (final ResolveInfo app : activityList)
    {
        Log.e("Application pachage",app.activityInfo.name +"package");
        if ((app.activityInfo.name).contains("Bluetooth"))
        {
            Log.e("Application pachage","mee" +"package");
            Toast.makeText(mActivity,"Message sent from Bluetooth",Toast.LENGTH_SHORT).show();
            final ActivityInfo activity = app.activityInfo;
            final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
            shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            shareIntent.setComponent(name);
            mActivity.startActivity(shareIntent);
            break;
        }
    }

那么,是否可以这样做?

1 个答案:

答案 0 :(得分:2)

仅在Android 5.1+上,如果您使用the three-parameter flavor of createChooser(),则可以提供有关该选项通知的IntentSender

否则,您需要滚动自己的选择器式UI,然后使用用户的选择来制作明确的Intent以将用户路由到所请求的活动。