I need help in getting the attached memory card writable from my app. The android version I'm using is Marshmellow. I requested for runtime permission using the below code.
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_WRITE_STORAGE) {
if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
Log.d(TAG, "Permission Granted");
}
}
}
I also checked the settings and the write permission is granted. Below are the two storage locations I have for the phone
/storage/emulated/0 (Internal Memory, Writable)
/storage/9C33-6BBD (SDCard, Not writable, only readable)
I tried the below code just to check if my memory card is writable
File file = new File("/storage/9C33-6BBD");
file.canWrite() // returns false every time
I'm not sure what I'm missing or doing wrong, other apps seem to have no problem in writing to memory card.
I also used adb shell and was able to create a folder in my memory card.
I have also added the below permission in my Manifest file.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Please let me know if you need more details. And thanks in advance for helping me out.