将内容 URI 与 ACTION_VIDEO_CAPTURE 一起使用
Using Content URI with ACTION_VIDEO_CAPTURE
我目前在我的文件提供程序上使用内容 URI 来检索由 ACTION_IMAGE_CAPTURE
意图返回的相机图像。这很好用。
由于某些奇怪的原因,尝试从相机中检索视频文件时,同一个调用不起作用。
destinationFile = File.createTempFile("video", ".mp4", this.getFilesDir());
Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", destinationFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
cameraIntent.setClipData(ClipData.newRawUri(null, uri));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(cameraIntent, ID);
当 onActivityResult()
中的意图 returns 时,destinationFile 为空。
只需将 MediaStore.ACTION_VIDEO_CAPTURE
替换为 MediaStore.ACTION_IMAGE_CAPTURE
即可得到预期的行为:捕获的图像保存在 destinationFile 中。
这发生在 Nexus 设备 Android 6.0.1 和默认 Google 相机应用程序上。
视频捕获真的不支持内容 URI 吗?我宁愿不在可公开访问的目录中使用文件 URI。
您有两个不同的问题:Google 相机应用的行为和整个 Android 生态系统的行为。
关于 Google 相机应用程序,我们将其报告为 a bug with respect to Android N,因为您别无选择,只能使用 content
Uri
(如果您targetSdkVersion
等于 N
或更高)。它应该在即将发布的版本中得到修复。
话虽如此,如果其他相机应用遇到 content
Uri
值问题,我一点也不会感到惊讶。这是我对 Android N effectively banning the file
scheme 的担忧之一,因为我们要 运行 进入 file
和 content
都不可靠的情况,我们也没有什么好办法检测这些案例。
我目前在我的文件提供程序上使用内容 URI 来检索由 ACTION_IMAGE_CAPTURE
意图返回的相机图像。这很好用。
由于某些奇怪的原因,尝试从相机中检索视频文件时,同一个调用不起作用。
destinationFile = File.createTempFile("video", ".mp4", this.getFilesDir());
Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", destinationFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
cameraIntent.setClipData(ClipData.newRawUri(null, uri));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(cameraIntent, ID);
当 onActivityResult()
中的意图 returns 时,destinationFile 为空。
只需将 MediaStore.ACTION_VIDEO_CAPTURE
替换为 MediaStore.ACTION_IMAGE_CAPTURE
即可得到预期的行为:捕获的图像保存在 destinationFile 中。
这发生在 Nexus 设备 Android 6.0.1 和默认 Google 相机应用程序上。
视频捕获真的不支持内容 URI 吗?我宁愿不在可公开访问的目录中使用文件 URI。
您有两个不同的问题:Google 相机应用的行为和整个 Android 生态系统的行为。
关于 Google 相机应用程序,我们将其报告为 a bug with respect to Android N,因为您别无选择,只能使用 content
Uri
(如果您targetSdkVersion
等于 N
或更高)。它应该在即将发布的版本中得到修复。
话虽如此,如果其他相机应用遇到 content
Uri
值问题,我一点也不会感到惊讶。这是我对 Android N effectively banning the file
scheme 的担忧之一,因为我们要 运行 进入 file
和 content
都不可靠的情况,我们也没有什么好办法检测这些案例。