如何从FileProvider URI获取文件?

时间:2018-10-18 15:53:25

标签: android android-fileprovider internal-storage

我想录制视频,将其存储在内部存储器中并访问文件。

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属性仍然显示正确的uriStringauthority

if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_VIDEO_CAPTURE) {

    File file = new File(this.uri.getPath());
    Log.d(file.exists()); // Logs false
}

那是为什么?

0 个答案:

没有答案