SD Cards In Android 6 (Marshmallow)

  1. Starting with Android 4.4 (KitKat), Google limited the ability for apps to write to the SD card. With Android 6 (Marshmallow), they've added a new support method for SD cards. You can now format a SD card in one of the two ways:

    1. Portable Storage: This is the same as the "old" method where apps can only write to their own app directory on the SD card. The primary advantage to "Portable" storage is that you can swap SD cards without affecting installed apps. But this also means that apps have to use the newer Android SD card API in order to be able to write to the SD card.
    2. Internal Storage: This is the new storage method introduced with Android 6. Formatting a SD card as "Internal" will create two internal storage pools; one pool that is internal storage and one pool that is the SD card formatted as internal. After formatting, the system will allow migration of apps (along with all internal app storage) from internal storage to the SD card. This will allow any app to write to the SD card even if it wasn't design to or if it uses the older SD card APIs. But it also means that the SD card can not be swapped as this may break any migrated apps. (Please note: Only some manufacturers offer this on their devices. Motorola and HTC support this option while Samsung and LG do not.)
    For this help page, we are using the Moto G (2015) and a 8GB microSD card.
  2. If the 8GB microSD card is formatted as "Portable", the system will show the Moto G as having 8GB of storage and the 8GB microSD as 7.42GB of portable storage.
  3. CloudPlayer will see the microSD card as a separate location and will present the "Storage:" switch setting. This controls which storage location CloudPlayer will use to store artwork files, cache files, and other non-critical information. If the SD card is removed, CloudPlayer will having missing artwork images but critical information like the library database will still be available.
  4. If the 8GB microSD card is formatted as "Internal", the system will show the Moto G as having 16GB of storage while also listing the storage capacity of the SD card (it's listed 7.29GB instead of 7.42GB due to some file system overhead from formatting as "Internal").
  5. With the 8GB microSD card formatted as "Internal", CloudPlayer will no longer detect the device as having a SD card so the "Storage:" switch is no longer shown in Settings.
  6. It's important to keep in mind that the storage is still split into two different pools, the original internal storage location and the microSD card formatted as "Internal". These two storage pools do not connect so app can only write to one of these pools, depending on if the app has been migrated.

    After initial formatting, the system will ask if you want to migrate apps. If you do not migrate apps, all apps will continue to write to internal storage.
  7. In this example, CloudPlayer hasn't been migrated so it will continue to write to internal storage. Because there isn't a lot of free space, when a 5GB playlist is cached, only a few hundred megabytes can be downloaded before internal storage has been filled up and caching is paused.
  8. CloudPlayer can be migrated to the SD card using the "Migrate data" option.
  9. Once migrated, CloudPlayer's caching will resume after the app is restarted, now writing to the SD card instead. Keep in mind that CloudPlayer is no longer capable of writing to internal storage after migration so the new storage limit is the SD card's capacity.
  10. Currently ClassicPlayer does not properly recognize "Portable" SD cards on Marshmallow devices due to the new SD card implementation. We are working on adding full support in a future update. As a workaround, you can migrate ClassicPlayer to the SD card after it's been formatted as "Internal" and it will then be able to write to the SD card.

We're here and ready to help you with doubleTwist Music Player. Visit our help pages or get support.

doubleTwist is a small Austin, Texas based company! Want to meet the team?