Просто прочитайте документацию на Android.
getExternalStorageDirectory
Добавлено в API уровня 1 файла getExternalStorageDirectory() Возвращает первичный общий каталог/внешнего хранения . Этот каталог не может быть в настоящее время доступен, если он был установлен пользователем на своем компьютере , был удален с устройства или возникла какая-либо другая проблема: . Вы можете определить его текущее состояние с помощью getExternalStorageState().
Примечание: не следует путать слово «внешний» здесь. В этом каталоге лучше подумать как о медиа/общем хранилище. Это файловая система, в которой может хранить относительно большой объем данных и распределяется между всеми приложениями (не применяет разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве , которое отличается от защищенного внутреннего хранилища и может быть , установленным как файловая система на компьютере.
На устройствах с несколькими пользователями (как описано UserManager) каждый пользователь имеет свои собственные изолированные хранилища. Приложения имеют только доступ к общей памяти для пользователя, с которым они работают.
В устройствах с несколькими совместно используемыми/внешними каталогами хранения данный каталог представляет собой основное хранилище, в котором пользователь будет взаимодействовать. с. Доступ к вторичному хранилищу доступен через getExternalFilesDirs (String), getExternalCacheDirs() и getExternalMediaDirs().
Приложения не должны напрямую использовать этот каталог верхнего уровня в , чтобы избежать загрязнения корневого пространства имен пользователя.Любые файлы, которые являются приватными для приложения, должны быть помещены в каталог, возвращаемый Context.getExternalFilesDir, который система позаботится о удалении, если приложение будет удалено. Другие общие файлы должны быть размещены в одной из каталогов, возвращаемых getExternalStoragePublicDirectory (String).
Запись этого пути требует разрешений WRITE_EXTERNAL_STORAGE, и начиная с KITKAT, доступ для чтения требует разрешений READ_EXTERNAL_STORAGE , который автоматически выдается, если вы держите от записи разрешения.
Начиная KITKAT, если приложению требуется только для хранения внутренних данных , рассмотреть возможность использования getExternalFilesDir (String), getExternalCacheDir(), или getExternalMediaDirs(), которые не требуют разрешения на чтение или запись.
Этот путь может изменяться между версиями платформ, поэтому приложения должны только сохранять относительные пути.
Вопрос еще не ответил, если Environment.getExternalStorageDirectory возвращает память телефона, несмотря на то, что устройство имеет SD-карту, есть ли способ получить местоположение SD-карты? –
@SreekanthKarumanaghat Это не будет делать, поскольку вы изменили вопрос. Посмотрите расширенный ответ http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0 – Doomsknight