This is Android 4.4 Kitkat's overview explanation, especially what Kitakat offers and what is changed from developer perspective.
Please note that this is written in Japanese.
8. 開発者視点: Storage Framework
public class Environment {
..snip..
public static class UserEnvironment {
..snip..
public UserEnvironment(int userId) {
..snip..
// Splice in any secondary storage paths, but only for owner
final String rawSecondaryStorage = System.getenv(ENV_SECONDARY_STORAGE);
if (!TextUtils.isEmpty(rawSecondaryStorage) && userId == UserHandle.USER_OWNER) {
for (String secondaryPath : rawSecondaryStorage.split(":")) {
9. 開発者視点: Storage Framework
public class ExternalStorageProvider extends DocumentsProvider {
...snip..
public boolean onCreate() {
...snip..
// TODO: support multiple storage devices, requiring that volume serial
// number be burned into rootId so we can identify files from different
// volumes. currently we only use a static rootId for emulated storage,
// since that storage never changes.
if (!Environment.isExternalStorageEmulated()) return true;
try {
final String rootId = "primary";
final File path = Environment.getExternalStorageDirectory();
mIdToPath.put(rootId, path);