简体   繁体   English

如何通过意图共享知道哪个应用程序共享

[英]How to know which application is share through intent share

//share intent function
private void shareIntent(String link) {
try {
    //check permission is granted ot not
    if (ContextCompat.checkSelfPermission(getActivity(),
            Manifest.permission.WRITE_EXTERNAL_STORAGE) ==
        PackageManager.PERMISSION_GRANTED) {
        List < Intent > shareIntentsLists = new ArrayList < Intent > ();
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.putExtra(Intent.EXTRA_TEXT, link);
        shareIntent.putExtra(Intent.EXTRA_STREAM, photoURI);
        shareIntent.setType("image/*");
        List < ResolveInfo > resInfos = getActivity().getPackageManager().queryIntentActivities(shareIntent, 0);
        if (!resInfos.isEmpty()) {
            for (ResolveInfo resInfo: resInfos) {
                String packageName = resInfo.activityInfo.packageName;
                if ((!packageName.toLowerCase().contains("com.facebook.katana")) &&
                    (!packageName.toLowerCase().contains("com.mm.parentconcern")) &&
                    (!packageName.toLowerCase().contains("com.facebook.orca")) &&
                    (!packageName.toLowerCase().contains("com.linkedin.android"))) {
                    Intent intent = new Intent();
                    intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
                    intent.setAction(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_STREAM, photoURI);
                    intent.putExtra(Intent.EXTRA_TEXT, link);
                    intent.setType("image/*");
                    intent.setPackage(packageName);
                    shareIntentsLists.add(intent);
                }
                if (packageName.contains("com.facebook.orca")) {
                    Intent intent = new Intent();
                    intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
                    intent.setAction(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_TEXT, link);
                    intent.setType("image/*");
                    intent.setPackage(packageName);
                    if (!shareIntentsLists.contains(intent)) {
                        shareIntentsLists.add(intent);
                    } else {
                        shareIntentsLists.remove(intent);
                    }
                }
                if (packageName.contains("com.facebook.katana")) {
                    Intent intent = new Intent();
                    intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
                    intent.setAction(Intent.ACTION_SEND);
                    intent.setType("text/plain");
                    intent.putExtra(Intent.EXTRA_TEXT, link);
                    intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(link));
                    intent.setPackage(packageName);
                    if (!shareIntentsLists.contains(intent)) {
                        shareIntentsLists.add(intent);
                    } else {
                        shareIntentsLists.remove(intent);
                    }
                }
                if (packageName.contains("com.linkedin.android")) {
                    Intent intent = new Intent();
                    intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
                    intent.setAction(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_TEXT, link);
                    intent.setType("text/*");
                    intent.setPackage(packageName);
                    if (!shareIntentsLists.contains(intent)) {
                        shareIntentsLists.add(intent);
                    } else {
                        shareIntentsLists.remove(intent);
                    }
                }

            }
            //this is share app list check
            if (!shareIntentsLists.isEmpty()) {
                Intent chooserIntent = Intent.createChooser(shareIntentsLists.remove(0),
                    getResources().getString(R.string.social_share_head));
                chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
                    shareIntentsLists.toArray(new Parcelable[] {}));
                //startActivity(chooserIntent);
                startActivityForResult(chooserIntent, 5);
            }

        }


    } else {
        //permissiom for storage
        askWriteExternalStoragePermission();
    }
} catch (Exception e) {
    e.printStackTrace();
}

}

这不能说是单次拍摄,而是将鼠标悬停在ShareIntent上并单击那里,您将被重定向到不同的页面,您将从那里获得发送的内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM