Различия между /sdcard/emulated/ 0 и/sdcard
Я схожу с ума со странной проблемой. Если я создаю папку внутри моего кода как
directory_path = Environment.getExternalStorageDirectory()
+ "/" + context.getResources().getString(R.string.app_name);
directory = new File(directory_path);
if (!directory.exists()) {
directory.mkdirs();
}
создается новая папка внутри /sdcard/. Если я пытаюсь напечатать на переменной logcat directory_path, путь будет другим:/storage/emulated/0/
и если я перехожу к этому пути, я нашел другую папку с тем же именем, что и созданный на /sdcard/. Это проблема для меня, потому что, когда я пытаюсь записать некоторые данные в эту папку, everithing идет в одном on/storage/emulated/0, а другой (то есть папка, которую я хочу использовать) остается пустым.
Почему?
Ответы
Ответ 1
Вы пытались прочитать данные? /storage/emulated/ 0/- новый путь, введенный в JB для поддержки нескольких пользователей на планшете. Но пока вы получаете доступ к внешним файлам с помощью Environment.getExternalStorageDirectory()
, не имеет значения, где они действительно находятся.
Вот дополнительная информация: https://android.stackexchange.com/questions/35541/why-did-sdcard-turn-into-sdcard-0-with-4-2
Ответ 2
/storage/emulated/0/: Насколько мне известно, это относится к "эмулируемым MMC" ( "часть владельца" ). Обычно это внутренняя. для пользователя здесь "0" - это первый пользователь, известный как владелец устройства. если ты создайте дополнительных пользователей, это число будет увеличиваться для каждого.
/storage/emulated/legacy/как раньше, но указывая на часть в настоящее время работающий пользователь (для владельца это будет символической ссылкой на
/хранение/эмулировать/0/). Таким образом, этот путь должен привести каждого пользователя к его "Часть".
/sdcard/: Согласно комментарию Shywim, это символическая ссылка на...
/mnt/sdcard (Android < 4.0)
/storage/sdcard0 (Android 4.0 +)
Для более подробной информации вы можете посетить stackexchange