View Issue Details

IDProjectCategoryView StatusLast Update
0011542MMAGeneralpublic2022-03-12 18:51
Reporterrusty Assigned To 
PriorityimmediateSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version1.0.4 
Target Version1.0.5Fixed in Version1.0.7 
Summary0011542: External SD Card inaccessible after upgrade to Kitkat
DescriptionAn a SG4, after a user upgraded to kitkat, access to the SD Card in the UI is missing--despite the fact that content on the SD card is accessible. The SD Card is missing in:
1) Folders view. Only option is for Internal Storage
2) Options > Choose Library folders: can only choose from Internal Storage
3) Options > Sync Location/Settings: can only set up sync for Internal Storage. My previous settings for the external card seem to be lost.
4) Options > UPNP, it still shows my last setting (/storage/extSdCard), but if I tap there to change it, I can only browse Internal Storage.
Additional Informationhttp://www.mediamonkey.com/forum/viewtopic.php?f=21&t=74609
TagsNo tags attached.
Fixed in build297

Relationships

related to 0010664 closedmarek MMA MMW doesn't see MMA's content after upgrade Android OS from 4.1 to 4.2 
related to 0011000 closedpeke MMA External storage location is missing / lost 
related to 0011943 closedLudek MMW v4 Multi-artists values fail to sync to MMA when SD card is read-only for MMA  
related to 0012047 closedmarek MMA Sync incomplete (regression build 151) 
related to 0011781 feedbackLudek MMW v4 Sync Plugins: Device profile and Sync Optimization 
related to 0012121 closedmarek MMA SD card not Available 

Activities

marek

2013-12-12 18:31

developer   ~0038735

Fixed in build 200

I hope I have fixed it. I tested it with my SGS2 and it looks ok. But I am still waiting for users' feedback.

rusty

2014-03-07 04:15

administrator   ~0039795

Per comments at http://www.mediamonkey.com/forum/viewtopic.php?f=21&t=74609 , this isn't fixed.

jiri

2014-03-11 19:45

administrator   ~0039837

As discussed offline, there isn't a good fix. The only option we see for now is to sync to our application folder only on devices/storages where we can't sync anywhere on the storage.

rusty

2014-03-11 20:50

administrator   ~0039838

Last edited: 2014-03-11 20:50

Pushed to 1.0.5 based on the risk of regression associated with a fix.

marek

2014-03-15 16:41

developer   ~0039884

Last edited: 2014-03-15 16:48

At first, we should clarify the naming. Because there are different ways how to understand that. And I think that it is quite confusing for you. Android uses two types of storages:

a) Internal - this storage is used for installing apps, for databases, storing some config files and other "small" application data. Each application has it's own folder and it cannot store data elsewhere.

b) External (one or more) - these storages can be on removable (SD cards, USB flash disks) or not (integrated to device). One of these external storages is "primary"..the main external storage. It doesn't has to be integrated to device and it can be a sd card. All these storages are shown when device is mounted over MTP.

Since Android 1.0, there is a possibility to write data to primary external storage to app's specific directory (Android/data/...). This folder is deleted when app is uninstalled. But whole primary external card is read-write and also other external storages are read-write.

Since Android 3.0, Google started to limit access to all external storages except primary external storage. These storages were read-only. Fortunately many manufactures (Samsung, ..) added workarounds to their firmware to avoid this limitation. But e.g. my friends with xperia (Android 4.0 and 4.1) with two external storages were not able to write on SD card.

Since Android 4.2, primary external storage is split to support multiple users functionality. Each user has it's own virtual primary external storage. All users shares the free space. One user cannot access virtual primary external storages of other users. Other external storages are not split and they are common for all users.

Since Android 4.4, Google added possibility to write to app specific directory on other external storages (other than primary). The rest of these external storages remains read-only. The main issue occurred when Samsung stopped workarounding the read-only access (e.g. in it's ROM for Galaxy S4).

Now I will response your questions:
1. We have to write information about all storages to all storages. So MMW can parse it and pair it with profiles. Also album artworks (that are not stored in same folder as album) are stored in this folder on same storage as it's media file.

This folder on primary external storage is used for USB sync.

2.No it isn't app specific directory. App specific directory is /Android/data/com.ventismedia.android.mediamonkey. Yes we can move our config files to this directory and it will help us. We actually wanted to do it some time ago but we were afraid of backward compatibility and we had no reason to do it. Btw. after changing this, this folder will be deleted on uninstall and our DB won't persist. Now MediaMonkey folder has to be deleted manually to delete database.

3. No this is not possible. This method returns path to primary external storage. Primary external storage has been always accessible directly. Actually, there were no SDK methods for accessing non-primary storages before 4.4. That is why we had to parse the system config files to determine what storages are mounted and what are their paths.

I would like to correct some details in http://www.mediamonkey.com/support/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=173&nav=0,13 . The API version you wrote there is not correct. It is also confusing that it is related to SD card. Device can have SD card only and this card will be read-write.

marek

2014-03-28 14:52

developer   ~0040023

This is the only thing we can do. So we will implement it in MM 1.0.5.

But it is not possible to sync to readonly storages in 1.0.4.

marek

2014-04-15 22:39

developer   ~0040082

Implemented in build 246

I cannot test it. This kind of storages are now allowed. User can sync to them. File mask is automatically changed.

marek

2014-04-29 14:23

developer   ~0040128

Tested and improved in build 249

USB sync should be fixed on MMW side.

marek

2014-05-07 15:35

developer   ~0040191

I have implemented it to build 250

But I have to optimize, i.e. somehow cache, the settings somehow because the process of determination of storage type is really slow (approximately 1 second) and the type of storage is not changing.

marek

2014-05-08 12:15

developer   ~0040193

Fixed in build 251

Tests should be made on various devices with various APIs. There were big changes in storage recognition. Due to hack for Kitkat devices all write access operation had to be reimplemented.

So every operation that needs write access to sd cards (download during wifi sync, delete during wifi sync or from context menu, creation of m3u playlist files) of all possible files (tracks, playlists, artworks) is affected by this fix.

Now there are 4 types of storages:
 A) Readwrite - full access to all files
 B) Readwrite-Hacked - full access to all files on Kitkat devices using MediaStore hack. This might not work with all devices. I have tested it with Samsung galaxy s4
 C) Readwrite-Limited - read only storage with write access to app-specific folder. I have added one row to Sync settings for this kind of storages to inform the user:

MediaMonkey has limited access to this storage due to Android\'s restrictions. Please click for details…

it is linked to: http://www.mediamonkey.com/support/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=173&nav=0,13

Maybe the info should be improved to inform the user about:
1. Changes to file masks: They are automatically changed but user can change them back and it will make wifi sync not usable. Maybe some warning should be in MMW.
2. The article generally describes the issue. Maybe there should be some other article specifically for users that have this kind of storage. This article will be linked with this button in sync preferences and inform shortly the user about the limitations and maybe have some link to article above for other solutions of this issue (like root, ...). What do you mean ?

 D) Readonly - storages that are not allowed to do wifi sync and other write operations. I do not have any device like this but some xperia devices with android 4.0-4.3 belong to this group.

marek

2014-07-03 14:42

developer   ~0040329

C) there should be certainly some new article with short information about google's restrictions and with information
 - where the media has to be stored
 - how masks will be changed
 - all media will be deleted on uninstall
 - all media stored outside MMA folder will be readonly

D) there should be a similar row as for C that is linked to new article that informs user why is his storage readonly.

rusty

2014-07-07 22:28

administrator   ~0040332

Last edited: 2014-07-08 22:01

Marek, I've updated the article (it's now at http://www.mediamonkey.com/support/index.php?/Knowledgebase/Article/View/163 ).

Hard link: http://www.mediamonkey.com/mediamonkey-android-sd-card-faq

marek

2014-08-12 09:52

developer   ~0040398

Fixed in build 297

peke

2022-03-12 18:51

developer   ~0067262

Not relevant anymore not seen KK devices recently.