我是应用程序开发的初学者.

我try 了互联网上找到的各种选项,通过代码将pdf文件保存在内存中.

为了获得下载文件夹,

一开始我试着

downloadDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

但它以打开失败的EACCES权限被拒绝错误而告终.

然后我试着

‘downloadDirector.getDataDir();’创建文件,但我无法通过文件管理器找到它.

然后

‘downloadDirector.getObbDir();’在内存中创建文件/android/obb/"应用程序文件夹/

然后

ContextWrapper contextwrapper=new ContextWrapper(getApplicationContext()); downloadDirectory=contextwrapper.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);

但这会将其保存在Android\Data"App文件夹"\Files\Downages中

对于普通用户来说,访问该文件夹似乎很困难. 此外,当打开文件管理器时,obb文件夹和数据文件夹都会在文件管理器上显示一条消息,说明"由于Android R引入的系统限制,此文件夹的内容将不再可访问.请尽快从此文件夹中删除您的个人文件."

那么在哪里保存从我的应用程序生成的报告? 有没有什么方法可以将此文件保存在普通下载文件夹或普通用户容易访问的任何其他常见文件夹中.

请帮帮我...

推荐答案

判断几样东西-

  1. 判断是否批准了permission.
  2. 判断是否在 list 中将requestLegacyExternalStorage设置为True.

android:requestLegacyExternalStorage="true"

  1. 判断您try 保存pdf的方法.MediaStore Api将是一个很好的 Select .

Android相关问答推荐

AdMob:MobileAds. initialize()—java. lang. xml对于某些设备不能强制转换为java. lang. String""

KMM项目生成错误-';在项目';中找不到测试类:共享';

显示本地房间数据库中未保存的项目的动态列表

处理Room数据库中的嵌套实体

Jetpack Compose:如何将浮动操作按钮上方的子按钮居中对齐?

有人能帮我在应用程序上使用模拟位置时避免被发现吗?我已经反编译并粘贴了一个代码,S小文件

在Delphi中使用OpenCV for Android在使用JLIST时抛出错误

AndroidX Media3 迁移指南

我需要在房间数据库中保留旧的自动迁移行吗?

是否可以按照干净的体系 struct 将活动实例传递给视图模型

通知使用默认语言,屏幕显示多种语言,同时通过 AppCompatDelegate 设置应用程序语言

在 MVVM Jetpack Compose 上添加依赖项时出现重复类错误

来自位图的 WearOS 图标不显示 colored颜色

Android工作室未成立

如何关闭可组合对话框?

ionic - capacitor - Android 风味 - 无法在模拟器或真实设备中运行应用程序

JCenter 是否永久关闭(10 月 31 日)?

Android 自动分页如何与 media3 配合使用?

使 Compose LazyColumn 的最后一项填满屏幕的其余部分

如何满足设备内框架的无效 Wear OS 屏幕截图Wear OS 表盘策略违规?