我设法制作了一个视频共享对话框,该对话框适用于其他所有应用程序,但不适用于Google相册。出于某种原因,Google相册向我显示了视频上传对话框,但是单击"上传"后,我得到:"错误,无法上传媒体"。
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("video/mp4");
Uri uri = FileProvider.getUriForFile(context, SHARE_AUTHORITY, resultFile);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
// Tried with these as well:
//shareIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
//shareIntent.putExtra(Intent.EXTRA_TEXT, "text");
activity.startActivity(Intent.createChooser(shareIntent, "Share Your Video"));
Facebook,Youtube,Gmail等都工作正常。我尝试的视频是这样的:
http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
只有谷歌相册不接受该视频,如果我从谷歌云端硬盘到谷歌相册共享相同的视频,它就可以了。
Logcat 不显示任何内容。
有没有人将视频分享到谷歌相册工作?
这是导致此失败的一个可能原因:它尝试通过 URI 访问应用程序专用的文件,但由于您未授予执行此操作的权限而失败。以下是您的操作方法:
- 确保清单中的内容提供程序具有参数
android:grantUriPermissions="true"
; - 通过调用
shareIntent.setClipData
来设置剪辑数据。您的数据应包含具有要打开的 URI 的项目。 - 呼叫
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.
这将告诉 Android 查看剪辑数据中的 URI,并授予用户选择的应用程序访问它的一次性权限。