我正在使用此代码共享图像集合:
final ArrayList<Uri> imageUris = new ArrayList<>();
for (final ImageBean selectedImage : ImageBean.getSelectedImageBeans(imagesBeans)) {
final File imageFile = new File(selectedImage.getPathToImage().getPath());
final Uri contentProviderUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", imageFile);
imageUris.add(contentProviderUri);
}
final Intent shareIntent = new Intent();
shareIntent.setType("image/*");
if (imageUris.size() == 1) {
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUris.get(0));
} else {
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
}
context.startActivity(Intent.createChooser(shareIntent, context.getResources().getText(R.string.share_images_intent)));
我主要有兴趣上传到Google相册。这对于600KB的图像非常有用,但对于5 MB的图像(我的相机为24MP)失败。因此,显然存在大小限制,但是由于Google Photos活动中发生了错误,因此我无法对其进行调试(或者我对Android Studio的操作方法不够了解)。
有没有一种方法可以更改我的Intent,以便我可以上传多个24MP图像,或者是否指定了大小限制,并且需要解决(例如,通过实现Google Photos API)?
答案 0 :(得分:0)
事实证明Google相册不能与FileProvider一起很好地使用。使用公共内容URI 进行上传时,可以使用类似的
int mediaId = cursor.getInt(getColumnIndexForMediaID());
Uri publicUri = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, Integer.toString(mediaId));
现在我回到Can't edit image in Google Photos after "Upload to Photos" activity