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

我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相关问答推荐

在Kotlin Jetpack Compose中点击按钮后启动另一个Android应用程序

Android意图过滤器不限制应用程序仅处理YouTube链接

Android事件:APP_SCOUT_HANG警告SQLite

BroadCastReceiver的onReceive方法中的Intent上的Extras为空

如何在Android中编写挂起函数和stateflow的单元测试

在Jetpack Compose中实现焦点突出的最佳方式?

如何在 Jetpack Compose LazyColumn 中将项目分组在一起,例如卡片

Android v31 及更低版本中 ImageView 中的圆角

使用 Gadle kotlin 为多模块 Android 代码库设置 jacoco

在 AGP 8.0 中构建失败,无法应用插件realm-android. APIandroid.registerTransform已删除

Compose 状态不是 recomposing

视觉转换后获取文本

如何在屏幕旋转或系统主题更改后将光标移动到 TextField 的末尾并保持键盘显示?

在 Kotlin 中循环遍历字符串并用新行替换句号

Compose `Icons.Outlined.Star` 没有概述

Hilt 依赖注入重复绑定错误

为什么官方文档用大写字母表示val变量?

新安装 Expo Go 的 android 设备上的 sdk 46.0.0 (@snack/sdk.46.0.0) 出错

Google Play 控制台您的应用是否使用广告 ID?

无法再查看 Jetpack Compose 预览.无法实例化一个或多个类 (ComposeViewAdapter)