无法在android中创建带有图像的文件夹

时间:2016-06-30 13:31:11

标签: java android file sdk android-sdcard

我正在尝试使用图片文件创建一个文件夹。

这是代码

File folder = new    File(Environment.getExternalStorageDirectory().toString()+"/Aqeel/Images");
    folder.mkdirs();
    String extStorageDirectory = folder.toString();
    File file = new File(extStorageDirectory, "Image2.PNG");
    if(!folder.exists()){
        Toast.makeText(MainActivity.this, "Not Exist", Toast.LENGTH_SHORT).show();
    }

这里也是我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bernardo.hellow">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".hello"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

我已添加了WRITE_EXTERNAL_STORAGE权限,但仍然无效。

1 个答案:

答案 0 :(得分:3)

如果您定位API 23,则必须以编程方式请求权限。

请求运行时权限

// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
            Manifest.permission.READ_CONTACTS)
    != PackageManager.PERMISSION_GRANTED) {

// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
        Manifest.permission.READ_CONTACTS)) {

    // Show an expanation to the user *asynchronously* -- don't block
    // this thread waiting for the user's response! After the user
    // sees the explanation, try again to request the permission.

} else {

    // No explanation needed, we can request the permission.

    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_CONTACTS},
            MY_PERMISSIONS_REQUEST_READ_CONTACTS);

    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
    // app-defined int constant. The callback method gets the
    // result of the request.
    }
}

来源:Android开发人员

显然,您需要将READ_CONTACTS更改为WRITE_EXTERNAL_STORAGE

处理结果

@Override
public void onRequestPermissionsResult(int requestCode,
    String permissions[], int[] grantResults) {

    switch (requestCode) {

    case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
        // If request is cancelled, the result arrays are empty.
        if (grantResults.length > 0
            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            // permission was granted, yay! Do the
            // contacts-related task you need to do.

        } else {

            // permission denied, boo! Disable the
            // functionality that depends on this permission.
        }
        return;
    }

    // other 'case' lines to check for other
    // permissions this app might request
}
}

来源:Android开发人员