微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

构建Android应用时,在哪里存储静态pdf或常规文件?

如何解决构建Android应用时,在哪里存储静态pdf或常规文件?

我有很多要显示在我的应用程序中的pdf文件(但是我可能会将功能扩展到其他文档类型)。静态图像位于可绘制文件夹中,静态文本位于字符串文件中。但是我应该把pdf文件放在哪里?

我知道我可以将其托管在服务器上,并且可以一次性下载,但是对于我的应用程序而言,这是不可能的。该应用是为特定用途设计的,我绝对需要将pdf文件与该应用捆绑在一起。

解决方法

在您的应用程序中创建名为资产的目录,并将pdf文件放入该目录中。使用this来阅读和显示pdf文件。

,

我认为您可以将PDF文件(或任何其他文件类型)保留在资产文件夹中。因此,在下载APK表单存储时,它也会下载这些文件。唯一的问题是它会增加APP的大小。

检查以下答案,您如何使用 assetManager

从资产访问PDF文件

https://stackoverflow.com/a/17085759/7023751

,

我正在回答自己的问题,因为其他答案对我来说并不完全有效。

与其他答案一样,我从资产文件夹中读取了文件,并在内部存储中创建了一个文件。我使用了muPDF,它与文件URI完美结合。

items是文件名的ArrayList。

try
{
    AssetManager assetManager = getAssets();
    InputStream in = assetManager.open(items.get(position));
    byte[] buffer = new byte[in.available()];
    in.read(buffer);
    File targetFile = new File(getFilesDir(),items.get(position));
    OutputStream outStream = new FileOutputStream(targetFile);
    outStream.write(buffer);
    in.close();
    outStream.flush();
    outStream.close();

    //Change below intent statements as per your code
    Intent intent = new Intent(this,DocumentActivity.class);
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(Uri.fromFile(targetFile));
    startActivity(intent);
}
catch (Exception e)
{
    e.printStackTrace();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。