Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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_Pdf_Path_Internal - Fatal编程技术网

Android 读取存储在内存中的pdf(文件路径无效)

Android 读取存储在内存中的pdf(文件路径无效),android,pdf,path,internal,Android,Pdf,Path,Internal,我想打开存储在移动内存中的pdf。。。 我正在尝试将文件的路径传递到Uri..但它一直向我显示此错误 “文件路径无效” 但我确信我走的是正确的道路 targetFile=new File("/data/data/package Name/app_mydir/test.pdf"); } Intent intent; intent = new Intent(Intent.ACTION_VIEW); intent.se

我想打开存储在移动内存中的pdf。。。 我正在尝试将文件的路径传递到Uri..但它一直向我显示此错误 “文件路径无效” 但我确信我走的是正确的道路

    targetFile=new File("/data/data/package Name/app_mydir/test.pdf");

            }

        Intent intent;
        intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(targetFile), "application/pdf");


               startActivity(intent);
检查输出

targetFile.exists()


如果返回true,则您可以继续,否则您的路径有问题。

默认情况下,应用程序内部存储目录中的文件是应用程序的私有文件。这意味着没有PDF阅读器应用程序可以读取该文件(因为它不与应用程序pid一起运行-未授予读取权限)

您必须以其他应用程序的显式读取权限保存该PDF 使用
Context.MODE\u WORLD\u READABLE
标志。看看如何准确地做到这一点


还可以使用和
Context.openFileInput()
来读取和写入内部目录中的文件(如上述文档所述)。不要像这样硬编码路径,它们可能会更改。

文件是如何保存的?通常情况下,数据文件最终位于应用程序目录中名为“files”的文件夹中,而不是根目录中;}File file1=新文件(目录,PdfName);将“getBaseContext()”替换为“YourActivityName.this”,如果您试图将文件传递给另一个应用程序,则可能无法使用MODE_PRIVATE。我正在使用相同的代码保存和读取音频文件,并且它可以工作。。。但它不适用于pdf文件。您安装了什么pdf查看器?我认为AdobeReader不支持像这样启动视图意图,如果您使用该应用程序,您必须明确选择该应用程序作为您希望打开的应用程序。不过,有一些第三方应用程序可以按照您现在的方式使用。您可能应该发布完整的stacktrace。问题是关于内部存储,它对所有应用程序都是公共的,只有cache dir和data dir对应用程序是私有的。(假设手机的内部存储容量为32 GB,外部sd卡容量为32 GB,这里的问题是指该内部存储)