Как получить файл из FileProvider URI? - PullRequest
0 голосов
/ 18 октября 2018

Я хочу записать видео, сохранить его во внутренней памяти и получить доступ к файлу.

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
}

Почему это так?

...