Java 无法在android中创建带有图像的文件夹
我正在尝试创建一个包含图像文件的文件夹 这里是代码Java 无法在android中创建带有图像的文件夹,java,android,file,sdk,android-sdcard,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.
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>
我已经添加了写入外部存储权限,但它仍然不起作用。如果以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.
}
}
资料来源:安卓开发者
显然,您需要将READ_联系人更改为WRITE_外部存储
处理结果
@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
}
}
来源:安卓开发者什么是“不工作”?你认为它应该做什么?它应该做什么?@Bernardo D'Agostino你的targetSdk?你一定得到了SecurityException,请检查@Bernardo D'Agostino检查您的targetSdk是否为23我不确定OP说他以23+为目标的位置,在任何情况下,我认为重要的是要提到权限的manifest属性在=23之间是不同的。我同意,但如果您以api 23为目标,我在回答的一开始就这样做了。但你是对的:)