我想录制视频,将其存储在内部存储器中并访问文件。
FileProvider为要录制视频的摄像机创建一个URI:
File path = new File(this.getFilesDir(), "shared");
File file = new File(path, UUID.randomUUID().toString() + ".mp4");
// Store URI as property of activity
this.uri = FileProvider.getUriForFile(App.getInstance().getApplicationContext(), App.getInstance().getApplicationContext().getPackageName() + ".provider", file);
Intent videoCaptureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
videoCaptureIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, durationLimit);
videoCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(videoCaptureIntent, REQUEST_VIDEO_CAPTURE);
视频文件存储在应用程序的内部存储中,我可以在Android File Explorer中的正确位置看到该文件。
但是,之后我无法访问该文件,找不到该文件。 uri
属性仍然显示正确的uriString
和authority
。
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_VIDEO_CAPTURE) {
File file = new File(this.uri.getPath());
Log.d(file.exists()); // Logs false
}
那是为什么?