Android version 4.4 (KitKat) drastically limits how user installed apps can access the external SD card. You can read more about the problem in this article. Practically the only workaround is to root the device and modify a system config file. It’s only one-line change but admitedly rooting is not something normal users would want to do.
Fortunately in Android 5.0 and later there is a new official way for apps to write to the external SD card. Apps must ask the user to grant write access to a folder on the SD card. They open a system folder chooser dialog. The user need to navigate into that specific folder and select it.
In our sync apps there is a new item in the app settings: “SD Card Write Access”. Selecting it opens a screen showing the current write access status. If write access is not possible, you can enable it by tapping “Enable Write Access” button. A system folder chooser dialog is displayed. For most users its initial state is completely empty!
You need to go to the menu and tell the system to show the SD card
Tap on the SD card from the list on the left side to display its folder structure. In this screenshot you see both “Internal storage” and the SD card. The SD card can be displayed under a different name then what you see here, for example “Kingston”. It’s the so called “disk label” of the card. The disk label is a short text the user uses to name the card. If there is no disk label, the system folder chooser uses a generic name “SD card”.
Then select the card. Don’t navigate down into any subfolder. You must select the top-level root folder of the SD card. This is important.
After tapping the “Select SD card” button you should be back in the app. The app double checks if it now indeed can write to the SD card. You should see a message about the check result in the app.
If you replace the SD card in your device, you need to go through this procedure again. The write permission is granted individually for each app and each physical SD card.
Some devices running Android 5, at least NVIDIA SHIELD and HTC One M8, suffer a known bug The system folder chooser dialog crashes and brings the whole app down with it after users press the “Select SD card” button.
The crash happens if the SD card doesn’t have a name (aka disk label). To avoid the crash you need to give a name to the card, for example, by following these steps
- Take the SD card out of the device
- Find an adapter, USB card reader or something so you can plug the card to your computer.
- On your computer give the card a name. How to do it depends on which operating system you use on your computer. Usually right click on the card icon on the computer desktop or file explorer, then choose “Rename” from the context menu would do it.
This is a system bug. Apps can’t workaround it by themselves.