[英]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.