#android #android-studio #android-layout
#Android #android-studio #android-layout
Вопрос:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdf_viewer);
pdfView=(PDFView)findViewById(R.id.pdfView);
Bundle extras = getIntent().getExtras();
url = extras.getString("url");
Uri uri=Uri.parse(url);
pdfView.fromUri(uri)
.pages(0, 2, 1, 3, 3, 3)
.enableSwipe(true)
.swipeHorizontal(true)
.enableDoubletap(true)
.defaultPage(0)
.enableAnnotationRendering(false)
.password(null)
.scrollHandle(null)
.enableAntialiasing(true)
.spacing(2)
.autoSpacing(true)
.pageFitPolicy(FitPolicy.WIDTH)
.fitEachPage(true)
.pageSnap(true)
.pageFling(true)
.nightMode(false)
.load();
}
Файл находится в указанном пути к файлу: /storage/ emulated/0/Android/data/edu/files/101.pdf , и я везде получаю правильный путь, но все равно получаю ошибку ниже:
2020-10-30 02:58:17.947 7146-7146/edu E / PDFView: ошибка загрузки pdf java.io.FileNotFoundException: нет поставщика контента: / storage/ emulated/0/Android/data/edu/files/ 101.pdf
Я старался до предела, но не смог найти ошибку, пожалуйста, укажите мне, где я ошибаюсь?
Комментарии:
1.
url
это путь к файловой системе, а неUri
. Не используйтеUri.parse()
. ИспользуйтеUri.fromFile(new File(url))
.2. Все работает нормально. Вы действительно спасли мне жизнь… Спасибо за тонну.
Ответ №1:
Полезная Uri
имеет схему, такую как content
, https
, или file
. Uri.parse()
будет проанализирован путь к файловой системе, но он не вводится file
в качестве схемы, и результат Uri
обычно бесполезен.
Итак, если у вас есть путь к файловой системе в виде строки, и вам нужно Uri
, используйте Uri.fromFile(new File(...))
, где ...
этот путь.