Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android mkdirs()在具有写外部权限的情况下返回false_Android - Fatal编程技术网

Android mkdirs()在具有写外部权限的情况下返回false

Android mkdirs()在具有写外部权限的情况下返回false,android,Android,我对mkdirs函数有个问题。查看我的权限清单 <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="xxxxxx" android:versionCode="15" android:versionName="3.1.1508"> <!-- Global permissions --

我对mkdirs函数有个问题。查看我的权限清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="xxxxxx"
android:versionCode="15"
android:versionName="3.1.1508">

<!-- Global permissions -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
SD卡已安装。我不明白。我在网上读了很多答案,但仍然是错的

我在emulator(使用模拟SD卡)上进行了测试,在Nexus5上,它不起作用。在我的HTC One X上,它工作了,为什么?!我绝望了

谢谢大家!
G.

如评论中所述,答案是缺少权限

自Android 6以来,权限处理发生了变化,如下所述:

您需要在运行时再次收集这些权限:

引述第一个答案:

/**
 * Checks if the app has permission to write to device storage
 *
 * If the app does not has permission then the user will be prompted to grant permissions
 *
 * @param activity
 */
public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}

可能重复的Thx!但他们的解决方案并不能解决我的问题:(我在每个目录上都测试了mkdirs(),mkdir,无论是否使用emulator。我没有更多想法:(如果您使用的是Android6,请在此处查看easyspeek的答案。权限处理已更改。我的链接丢失:
/**
 * Checks if the app has permission to write to device storage
 *
 * If the app does not has permission then the user will be prompted to grant permissions
 *
 * @param activity
 */
public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}