Learn how the MANAGE_EXTERNAL_STORAGE permission works in android and how to implement it. Show In the last days I've been working on the development of a Capacitor Plugin that allows to launch a native file picker and I faced a new problematic that a lof of android developers seems to be having now. Since Android 11 (apps targeting SDK Version 30) which is by default the target API of a new Capacitor based applications, there's a new update on the Storage policies of apps. The Scoped Storage enforcement has been implemented to enhance the platform, giving better protection to your app and user's data on external storage. This will cause some modifications in which app works since this API as:
The reason why I faced this problem is because the plugin should allow to select any possible file in the device as it will be used inside a Code Editor application. Accessing all filesThere's a possibility to access all the files in the device using the new permission . However, this automatically will put a restriction in your application as Google Play should review if you really need the mentioned permission when trying to publish the application to the Play Store. The permission won't be applied automatically to your app without the user's interaction as the user needs to obligatorily grant access to the files. You can do this in Android following these steps: 1. Request MANAGE_EXTERNAL_STORAGE permissionModify your
The MANAGE_EXTERNAL_STORAGE permission allows an application a broad access to external storage in scoped storage. Intended to be used by few apps that need to manage files on behalf of the users. 2. Request External Storage PermissionsAfter declaring the permissions, you need to request the regular
The logic of this step is up to you as you may know how to request permissions in your own application. 3. Checking permission of MANAGE_EXTERNAL_STORAGENow, instead of the regular permissions request to handle the mentioned permission, you need instead to verify whether the access to the external storage is allowed. In case it isn't, you need to launch a new activity showing the system's dialog where the user should manually allow the access to the external storage to your app like this:
So when the user installs the app and try to access the file picker, if the access to all files isn't granted yet, the following system intent will be launched: The user will have to explicitly allow access to all files if you want to read files from any source in the device and that should be enough. Happy coding ❤️! How do I grant external storage permissions on Android?Change app permissions. On your phone, open the Settings app.. Tap Apps.. Tap the app you want to change. If you can't find it, tap See all apps. ... . Tap Permissions. If you allowed or denied any permissions for the app, you'll find them here.. To change a permission setting, tap it, then choose Allow or Don't allow.. How do I give my Android permissions to my SD card?Save files to your SD card. On your Android device, open Files by Google. . Learn how to view your storage space.. At the top left, tap More Settings .. Turn on Save to SD card.. You find a prompt that asks for permissions. Tap Allow.. How do you access storage on Android?Check your storage space. On your Android phone or tablet, open the Google One app .. At the bottom, tap Storage.. Under "Storage used," find storage for each product.. Under "Family storage," find storage used by any family members in your plan.. |