Nano Hash - криптовалюты, майнинг, программирование

Откройте загруженный файл (pdf) из папки «Загрузки» во ВНУТРЕННЕМ ХРАНИЛИЩ.

Я загрузил файл (133465.pdf) с помощью диспетчера загрузок, и теперь он хранится в папке «Загрузки» мобильного телефона (внутреннее хранилище).

Как мне попытаться извлечь загруженный PDF-файл из папки "Загрузки"?

Я использую приведенный ниже код, чтобы попытаться получить PDF-файл из папки загрузок, но я получаю сообщение об ошибке в тосте: «Не удается отобразить PDF-файл (невозможно открыть 133465.pdf)».

String file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() +  File.separator + "133465.pdf";
                Log.i("Fragmentadapter1", file);
                File videoFile2Play = new File(file);
                Intent i = new Intent();
                i.setAction(android.content.Intent.ACTION_VIEW);
                i.setDataAndType(Uri.fromFile(videoFile2Play), "application/pdf");
                imageContext.startActivity(i);

Я не знаю, правильно ли я использую расположение файла для доступа к файлу.

Любая помощь или предложение будут оценены.


Ответы:


1

Если вы работаете с Lollopop и Lower: вам не нужно спрашивать у пользователя разрешение во время выполнения. Разрешения манифеста подойдут.

Если вы работаете на Marshmellow и выше: вы должны запросить у пользователя разрешение. во время выполнения и действовать в соответствии с выводом пользователя.

Помните: вы все равно должны предоставить разрешения для манифеста.

Чтобы загрузить PDF-файл в папку "Загрузки пользователя":

DownloadManager downloadmanager;
    Environment
            .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
            .mkdirs();

    downloadmanager = (DownloadManager) getApplication().getSystemService(Context.DOWNLOAD_SERVICE);
    String url = hardcode + bb ;
    Uri uri = Uri.parse(url);
    DownloadManager.Request request = new DownloadManager.Request(uri)
            .setTitle(bb )
            .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
                    bb)
            .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    Log.i("Download1", String.valueOf(request));
    downloadmanager.enqueue(request);

Справочник

Чтобы просмотреть загруженный PDF-файл из папки "Загрузки" на устройстве "Пользователи":

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator +
            "YOUR FILE NAME");
    Uri path = Uri.fromFile(file);
    Log.i("Fragment2", String.valueOf(path));
    Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW);
    pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    pdfOpenintent.setDataAndType(path, "application/pdf");
    try {
        this.startActivity(pdfOpenintent);
    } catch (ActivityNotFoundException e) {

    }

Примечание. Убедитесь, что у вас есть разрешение, прежде чем загружать файл PDF для просмотра для Marshmellow и UP.

06.07.2016
  • скачать не удалось .. есть идеи почему это происходит? 29.07.2020
  • Он работает нормально, но есть проблема, связанная с Environment.getExterbalStoragePublicDirectory дает устаревший файл. Пожалуйста, обновите новый код. 26.12.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..