Android 13下如何将图片与PDF保存至应用专属私有文件夹?
Android 13 创建应用专属私有文件夹实现方案
在Android 13中,你可以通过两种方式创建仅你的应用可访问的专属文件夹,无需额外申请存储权限,且卸载应用时这些文件会被自动清理:
1. 内部存储私有目录
内部存储的私有目录是应用的专属空间,其他应用完全无法访问,用户也无法在文件管理器中找到该目录。
创建文件夹代码示例
// 获取应用内部存储的根目录 File appRootDir = getFilesDir(); // 创建以应用名称命名的根文件夹 File appPrivateDir = new File(appRootDir, "你的应用名称"); if (!appPrivateDir.exists()) { appPrivateDir.mkdirs(); } // 分别创建图片和PDF子文件夹 File picDir = new File(appPrivateDir, "Pictures"); File pdfDir = new File(appPrivateDir, "PDFs"); picDir.mkdirs(); pdfDir.mkdirs();
保存文件示例(以图片为例)
File imageFile = new File(picDir, "sample_image.jpg"); try (FileOutputStream fos = new FileOutputStream(imageFile)) { bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos); } catch (IOException e) { e.printStackTrace(); }
2. 外部存储私有目录
如果内部存储空间不足,可使用外部存储的应用专属目录,同样属于私有空间,用户默认无法在文件管理器中操作该目录,且无需存储权限。
创建文件夹代码示例
// 获取外部存储的应用专属根目录 File externalAppDir = getExternalFilesDir(null); if (externalAppDir == null) { // 外部存储不可用,执行容错逻辑 return; } // 创建以应用名称命名的根文件夹 File appPrivateDir = new File(externalAppDir, "你的应用名称"); if (!appPrivateDir.exists()) { appPrivateDir.mkdirs(); } // 创建图片和PDF子文件夹 File picDir = new File(appPrivateDir, "Pictures"); File pdfDir = new File(appPrivateDir, "PDFs"); picDir.mkdirs(); pdfDir.mkdirs();
关键说明
- 外部私有目录的路径通常为
/Android/data/你的应用包名/files/你的应用名称/ - Android 10及以上版本,访问该目录无需
WRITE_EXTERNAL_STORAGE或READ_EXTERNAL_STORAGE权限 - 卸载应用时,该目录下所有文件会被系统自动删除
注意事项
- 若需要文件在应用卸载后保留,只能使用公共目录,但这会允许用户随意操作,不符合你的需求
- 内部存储私有目录无法通过普通文件管理器查看,需通过Android Studio的Device File Explorer或ADB命令查看
内容的提问来源于stack exchange,提问作者Akshar Kalathiya
相关产品推荐
相关产品推荐

