I'm trying to update my app source code to Android 6.0 with the new runtime permissions.
But also if the user grants to app the storage permission, the app is not able to create directories in the 'onRequestPermissionsResult'
method using the 'mkdirs'
.
In the AndroidManifest.xml I put the 'uses-permission'
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xample.provasd"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- application, activity, etc -->
Then in the MainActivity I deal with the permission request:
public void executeButton(View view){
final String[] PERMISSIONS_STORAGE = { Manifest.permission.WRITE_EXTERNAL_STORAGE };
//Asking request Permissions
ActivityCompat.requestPermissions(this,PERMISSIONS_STORAGE, 9);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
boolean writeAccepted = false;
switch(requestCode){
case 9:
writeAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;
break;
}
if(writeAccepted){
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File dir = new File(Environment.getExternalStorageDirectory()+"/"+"TestFolder");
boolean b = dir.mkdirs();
if(b){
Log.i("TAG", "WOW! "+dir+" created!");
}else{
Log.e("TAG", "OPS! "+dir+" NOT created! To be sure: new dir exist? "+dir.exists());
}
}
}
}
Launching the app on emulator, the request dialog is showed: allowing the permission the body of 'onRequestPermissionsResult'
is executed (writeAccepted=true)
BUT the folder is not created!
This is what appear in the LogCat:
I/TAG(9020): Permission ok
I/TAG(9020): Try to create dir: /storage/3143-1CEA/TestFolder
E/TAG(9020): OPS! /storage/3143-1CEA/TestFolder NOT created! To be sure: new dir exist? false
I don't understand the reason.
Please, someone can help me?
Thank you,
Mirko
The problem may not lie in the code. If your phone is running on Android 6.0, look to see if your App has sufficient permissions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With