Когда я использую/хранение/sdcard0/на них код выполняется успешно, но когда я использую Galaxy Nexus 3 код не удается.
/storage/sdcard0/
не является внутренним хранилищем. Это внешнее хранилище.
(кстати, так как нет ни одного устройства под названием «Galaxy Nexus 3», я предполагаю, что вы просто имел в виду «Galaxy Nexus»)
Чтобы найти места на внутренней хранения для вашего приложения, используйте getFilesDir()
, призвал любой Context
(например, ваш Activity
, чтобы получить File
объект.
чтобы получить место на внешнего хранения уникального для вашего приложения, используйте getExternalFilesDir()
, называемый на любой Context
(например, ваш Activity
, чтобы получить File
.
Чтобы получить стандарт расположение на внешнего хранения общих типов файлов (например, фильмы), используйте getExternalStoragePublicDirectory()
на Environment
.
Чтобы получить корень из внешнего хранения, использования getExternalStorageDirectory()
на Environment
. Это, однако, в настоящее время считается неаккуратным программированием, поскольку оно побуждает разработчиков просто помещать файлы в случайные местоположения.
Этот вопрос довольно запутан между внутренним/внешним, поэтому ** никогда не предлагайте его как дубликат для чего-либо **. –