Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从内部存储器中的下载文件夹中打开下载的文件(pdf)_Android_File_Pdf_Android Intent_Android Download Manager - Fatal编程技术网

Android 从内部存储器中的下载文件夹中打开下载的文件(pdf)

Android 从内部存储器中的下载文件夹中打开下载的文件(pdf),android,file,pdf,android-intent,android-download-manager,Android,File,Pdf,Android Intent,Android Download Manager,我使用下载管理器下载了一个文件(133465.pdf),现在它存储在手机的下载文件夹(内部存储)中 我应该如何尝试从下载文件夹中检索下载的pdf 我正在使用下面的代码尝试从下载文件夹中检索pdf,但我在Toast上遇到一个错误,说“无法显示pdf(133465.pdf无法打开)” 我不知道我是否使用了正确的文件位置来访问该文件 任何帮助或建议都将不胜感激。如果您为Lolloop及以下公司工作:您不必在运行时向用户请求许可。清单权限就可以了 如果您为Marshmellow和up工作:您必须要求用户

我使用下载管理器下载了一个文件(133465.pdf),现在它存储在手机的下载文件夹(内部存储)中

我应该如何尝试从下载文件夹中检索下载的pdf

我正在使用下面的代码尝试从下载文件夹中检索pdf,但我在Toast上遇到一个错误,说“无法显示pdf(133465.pdf无法打开)”

我不知道我是否使用了正确的文件位置来访问该文件


任何帮助或建议都将不胜感激。

如果您为Lolloop及以下公司工作:您不必在运行时向用户请求许可。清单权限就可以了

如果您为Marshmellow和up工作:您必须要求用户在运行时提供帮助,并根据用户的输出采取行动

记住:您还必须授予清单上的权限

要在用户下载文件夹中下载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);
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:

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);
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) {

    }

注意:在下载之前,请确保您已获得授权查看Marshmellow及以上版本的PDF文件。

下载失败。。知道为什么会发生这种情况吗?工作正常,但存在一个关于“Environment.getExterbalStoragePublicDirectory”提供的不推荐文件的问题。请更新新代码。