I am learning android development and i am facing some problem to read getExternalStorageDirectory in java, I have read https://developer.android.com/reference/android/os/Environment but can't understand, can someone help me with example code in java.
From the docs you can see:
getExternalStoragePublicDirectory(String type)
This method was deprecated in API level 29. To improve user privacy, direct access to shared/external storage devices is deprecated. When an app targets Build.VERSION_CODES.Q, the path returned from this method is no longer directly accessible to apps. Apps can continue to access content stored on shared/external storage by migrating to alternatives such as Context#getExternalFilesDir(String), MediaStore, or Intent#ACTION_OPEN_DOCUMENT.
Pass nothing as parameter to this function to get your directory as a File
object :
context.getExternalFilesDir();
Here "Context" is an object which is obtained by this.getContext();
this
is the current object of the Activity. Do check the scope carefully while using it.
Important
To access the Internal storage, Manifest.permission.WRITE_EXTERNAL_STORAGE
and/or Manifest.permission.READ_EXTERNAL_STORAGE
are required in the file AndroidManifest.xml.
Optional information:
Usually the internal storage has the path /sdcard/ on Android devices. It's not a real path but a symlink.
It's confusing but "external sdcard" in Android acutally means the Internal device storage and not the external ejectable out-of-the-device memory card storage. Also note that the real external sdcard cannot be fully access
Activity class extends the Context class That's why we can get the context from it.