Как программно получить доступ к определенному кешу на Android для получения кэшированного видео - PullRequest
1 голос
/ 03 октября 2019

Я сталкиваюсь с очень странной проблемой, когда пытаюсь извлечь видео из кеша. Я использую AndroidVideoCache, который работает отлично. Мой код для хранения файла:

HttpProxyCacheServer proxy = getProxy(getApplicationContext());
String proxyUrl = proxy.getProxyUrl(url);
videoView.setVideoPath(proxyUrl);

...

Я вижу файлы, кэшированные в телефоне, Путь: / хранилище / эмуляция / 0 / Android / данные / [packagename] /cache/video-cache/video.mp4 Когда я воспроизводю видео, оно приходит через секунду. Все отлично работаетТеперь я хочу поделиться этим видео на Facebook. Код для обмена:

ShareDialog shareDialog = new ShareDialog(DisplayVideos.this);
File file = new File("/storage/emulated/0/Android/data/[Packagename]/cache/video-cache/video.mp4");
Uri local = Uri.fromFile(file);
ShareVideo video = new ShareVideo.Builder().setLocalUrl(local).build();
ShareVideoContent videoContent = new ShareVideoContent.Builder().setVideo(video).build();
shareDialog.show(videoContent);

Но затем я получаю исключение!

com.facebook.internal.NativeAppCallAttachmentStore: Got unexpected 
exception:java.io.FileNotFoundException: 
/file:/storage/emulated/0/Android/data/[Packagename]/cache/video-cache/video.mp4

Видео 9M, все разрешения в порядке, и поставщик установлен для приложения в AndroidManifest. Я застрял в течение 2 дней, и я хотел бы знать, что я делаю неправильно, и если у кого-то была подобная проблема прежде. Помощь будет высоко ценится.

...