Cannot Find The Files In Phone Storage Of Real Device In Android 10
Solution 1:
First, never hardcode paths for apps that you plan to distribute. For those, please use methods on Context
, Environment
, or StorageVolume
(Android 11 only) to find the base directory to use.
For Android 10 and 11, you need to add android:requestLegacyExternalStorage="true"
to your <application>
element in the manifest. This opts you into the legacy storage model, and your existing external storage code will work.
Note that in Android 11+, you will not be able to write to that directory, regardless of whether you have requested WRITE_EXTERNAL_STORAGE
or not. Google would vastly prefer that you use the Storage Access Framework (e.g., ACTION_OPEN_DOCUMENT
), so that users have more control over where files get placed on their devices or in their chosen cloud storage providers.
Solution 2:
I would like to add something more to the @CommonsWare answer. As per the Android's storage update, they enforce scoped storage
in the Android 11
version.
But to give developers additional time for testing, apps that target Android 10
(API level 29) can still request the requestLegacyExternalStorage
attribute. This flag allows apps to temporarily opt-out of the changes associated with scoped storage, such as granting access to different directories and different types of media files. After you update your app to target Android 11, the system ignores the requestLegacyExternalStorage flag.
If your app opts out of scoped storage when running on Android 10
devices, it's recommended that you continue to set requestLegacyExternalStorage
to true in your app's manifest file. That way, your app can continue to behave as expected on devices that run Android 10.
For more info on this, please check documentation
Post a Comment for "Cannot Find The Files In Phone Storage Of Real Device In Android 10"