在这里记录一个小问题,在直接使用系统分享功能,即设置Intent的Action为Intent.ACTION_SEND,分享图片到微信好友时,当微信处于打开的状态时,只能唤起微信,而不能选择分享好友选择列表。代码如下:
public static Intent shareImageToOtherApp(Context context, File imageFile) throws Exception {
if (context == null || imageFile == null || !imageFile.exists()) {
throw new IllegalArgumentException("The params is empty.");
}
Uri fileUri;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
fileUri = Uri.fromFile(imageFile);
} else {
fileUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", imageFile);
}
if (fileUri == null) {
throw new IllegalAccessException(String.format("Can't generate uri from file(%s)", imageFile.getAbsolutePath()));
}
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
return shareIntent;
}
解决方法就是将shareIntent封装成Intent.ACTION_CHOOSER的新的Intent。
return Intent.createChooser(shareIntent, "Share");