gpt4 book ai didi

android - 无法在android应用程序中打开pdf

转载 作者:行者123 更新时间:2023-11-30 03:37:21 24 4
gpt4 key购买 nike

我在打开已保存到我的 Android 应用程序文件系统中的 pdf 时遇到问题。

我有一个 rest 调用从服务器序列化一个字节数组,然后我将这个字节数组保存为我的 pdf 文件。这部分工作正常,我可以导航到保存 pdf 的目录并打开它。

但是,当尝试通过手机 GS4(POLARIS Office View 5)或 Adob​​e Reader 上的默认 pdf 查看器从我的应用程序中打开 pdf 时,这两个应用程序都无法打开文件。 POLARIS 返回 toast“无法打开此文档”Adobe 启动但随后抛出文档路径无效。

我下面的代码用于保存我的文件。

private String createFile(AttachmentDTO dto) {
String fileExtention = getMimeType(dto);
File file = new File(context.getExternalFilesDir(Constants.BASE_EXTERNAL_DIRECTORY_ATTACHMENTS), dto.getId() + fileExtention);
FileOutputStream fos;

try {
Files.write(dto.getAttachment(), file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return file.getPath();
}

我的文件的完整路径是

/storage/emulated/0/Android/data/com.rsd.childcare.mobile.client/files/attachments/2.pdf

现在我的假设是,由于权限,这两个应用程序都无法打开 pdf。但是我的 list 中有以下内容

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我知道在声明 WRITE_EXTERNAL_STORAGE 时你也会获得 READ 权限,但在 4.2 中他们已经添加了这个所以我想我会尝试一下,但仍然不高兴。

我“想到”的另一件事是通过调用“getExternalFilesDir”这让第 3 方应用程序可以读取这些文件??!!

下面的代码说明了我如何尝试阅读 pdf

String filePath = Attachment.findAttachmentPath(Integer.parseInt((String) view.getContentDescription()));
File file = new File(Environment.getExternalStorageDirectory() + filePath);
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);

如果有人能指出正确的方向,我将不胜感激

谢谢

最佳答案

看来您在确定路径方面有一些代码重复——您编写的代码似乎使用与构建 Uri 的代码不同的代码来确定路径。对于 Intent .你确定它们匹配吗?

getExternalFilesDir(Constants.BASE_EXTERNAL_DIRECTORY_ATTACHMENTS)用于创建文件,而 getExternalStorageDirectory()用于 Uri .你可能想加入一些 Log语句或断点以确保一切都按预期排列。更妙的是,您可能想要稍微巩固一下这个逻辑,这样您就可以确定在两个地方都使用了相同的值。

关于android - 无法在android应用程序中打开pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16440219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com