android - java.io.fileNotFoundException(权限被拒绝)
问题描述
我有下一个方法:
public void saveOnSDCard() {
File path = new File("storage/sdcard1");
File dir = new File(path + "");
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(dir, "test.png");
OutputStream os;
try {
os = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
} catch (IOException ioe) {
showToast("Ошибка " + ioe.toString());
}
}
但是当我尝试调用它时,它给了我一个 java.io.fileNotFoundException(Permission denied)。我的清单文件中有下一个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
那么有人可以告诉我出了什么问题吗?
PS 图像 - 位图对象,我用另一种方法声明它。
解决方案
评论中的人告诉我,如果您有一个 android 4.4+,则只有当您将 sdcard 作为主存储器或有时当您的手机已植根时,您才能写入 sdcard。我试过了,它确实有效。
推荐阅读
- abp - ABP.IO CLI:尝试使用 repo 中的 templates\app 文件夹从自定义模板创建应用程序
- solidity - Solidity、solc、web3.js、Ganache 版本组合目前正在工作
- angular - 带有 Universal 和 Ionic 的 Angular SSR 不在页面源中显示实际数据
- html - 如何使用 CSS 伪元素 (:after) 将图像添加为文本背景
- r - 按名称对 flowSet 中的流帧进行排序
- python - Odoo 13-14 获取当前弹出模型
- javascript - 如何使用 Nunjucks 调用函数?
- javascript - NextJS Firebase 身份验证未定义 GoogleAuthProvider
- python - 在终端输入“python3”时系统会选择哪个Python3版本
- android - Play Asset Delivery 资产包未使用 bundletool 安装