java - mkdirs() 不会在 android 中创建新目录
问题描述
我试图在我的存储中创建一些文件夹并将相机中的图像存储到其中,但 mkdirs 总是返回 false,已经尝试使用 mkdir 和 canWrite,但仍然相同
2020-02-12 09:32:44.043 22914-23146/example.com.absensiapp D/TET: Folder Not Exist
2020-02-12 09:32:44.047 22914-23146/example.com.absensiapp D/TET: Failed To Create Directory
这是制作文件夹并从相机保存图像的代码
String wholeFolderPath = fh.TRAINING_PATH + name;
File dir = new File(wholeFolderPath);
if(!dir.exists()) {
Log.d("TET", "Folder Not Exist");
//create new directory
if(dir.mkdirs())
fh.saveMatToImage(m, wholeFolderPath + "/");
else
Log.d("TET", "Failed To Create Directory");
}
else {
Log.d("TET", "Folder Exist");
//save the image to directory
fh.saveMatToImage(m, wholeFolderPath + "/");
}
已经在我的清单和主要活动中加入了许可
显现 :
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
主要活动 :
private static boolean hasPermissions(Context context, String... permissions) {
if (context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
private void checkPermission() {
int PERMISSION_ALL = 1;
String[] PERMISSIONS = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA
};
if (!hasPermissions(this, PERMISSIONS)) {
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
}
解决方案
解决这个问题。将 build.gradle 中的 targetSdkVersion 从 29 降级到 21
推荐阅读
- sql - 在 INSERT 查询中增加非主键字段
- eclipse - 在 MacOS 上是否可以将 Intellij IDEA 或 Eclipse 导出为 X Windows 应用程序?
- excel - VBA Vlookup 错误
- python - 使用 Selenium 和 Python 从 xpath 不断变化的元素中抓取文本
- reactjs - 私有路由不重定向到登录页面
- mongodb - 使用 unix 时间戳查询 MongoDB 中的空闲时隙
- java - 关于 Java 中的 showMessageDialog 框
- c# - 如何在 C# 中将字符串转换为整数类型数组?
- php - Laravel show Blade - 试图获取非对象的属性'"'
- c# - 如何在 Unity 中将鼠标输入转换为触摸输入?