Unfortunately, starting with Android 4.4 Google has made using SD cards very difficult. For a variety of reasons such as preventing one app from tampering with another app's data, the SD card has in effect become "read only" for all folders except for one specific folder per app. If you click here to do a google search for kitkat sd card support
you'll find lots of posts discussing this change, and explaining the pros and cons of Google's decision.
The result: CC can write books only into on the SD card into a private files folder that gets deleted when you delete the associated app. Consequently a) there is only one folder on the SD card where CC can store your library, and b) that your library will be deleted from your SD card if you ever uninstall CC or cleared CC's data. To repeat: if you use Android 4.4 and put your library on an SD card, your books will be deleted if you uninstall CC.
There is absolutely nothing we can do about this.
The name of an app's private folder is set by Android. For CC, that name is Android/data/com.multipie.calibreandroid/files
If you upgraded to KitKat and your library is in a no-longer-writable folder on the SD card, then there are three ways to recover:
- Assuming you accept the risk of your books being deleted, starting in CC 3.3.5 you can move your books to CC's private folder on the SD card. See the answer How do I change the folder on my device where the books are stored? for how to move your library. Use the "SD Card" button when selecting the folder (button only visible on Android 4.4+).
- You can move your library to your phone's internal memory. It will then work as before. See the answer How do I change the folder on my device where the books are stored? for how to move your library.
- You can root your device and remove the restriction. Not something we'd recommend or can support.
Option 1 also works to move your library from internal memory to your SD card, something you should do only if you accept that uninstalling CC or clearing its data will delete your books.
Important note for options 1 and 2
: CC will be unable to delete the files from the old folder on the SD card. You must delete them yourself by putting the SD card into a card reader or using one of the few file manager apps that (currently) can manipulate SD cards.
If you are running a version of Android less than 4.4, you can still put your library in an arbitrary folder on an SD card, although you might not want to do that if your device is susceptible to being upgraded to KitKat. See the answer How do I change the folder on my device where the books are stored?
. Using SD cards is explained at the end of the answer.
The following documents one user's experience with option 1, documenting the steps he followed:
Originally Posted by dfrye
Just a followup to V3.3.5 (Thanks chaley!!) for anyone with existing books on the sdcard. To start the conversion process you need to change the default dir for the books (app menu> Settings > "Book Formats and Folders") Note where the files are currently stored. You will need this info to manually clean up later. Tap on the default folder and get a dialog with a short summary of this thread. Click on the suggested folder name (not the Choose Folder button). The program will copy the existing books to the new folder. Make sure there is enough room on the sdcard for the copied books. It may take a while to copy. Once it is done you will get a error message for each of the books that it was not able to delete the old files. That's OK. At this point Calibre Companion will work normally. The old copy of the books are still on the sdcard. To free up the space you will need to delete the old books using other means. Either use a file manager that knows how to get past KitKat to the delete files on the sdcard or pull the sdcard and plug into a PC.