Папка доступа Android с использованием каталога environment.getexternalstoragedirectory на устройстве только с внутренней памятью вернется?

я использую этот код для доступа к папке:

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/somefolder";

на устройствах с SD-картой это нормально, у меня нет устройства только с внутренней памятью, чтобы проверить, что произойдет, что произойдет, если это будет выполнено на устройстве без SD-карты? будет ли он автоматически установлен на путь внутренней памяти? пользователь приложения поместит эту папку в корень доступной памяти.

есть ли способ получить внутренний путь?

есть ли способ проверить оба корня, чтобы увидеть, присутствует ли эта папка?


person user1429371    schedule 03.06.2012    source источник


Ответы (1)


Существует несколько различных типов «внутренней» памяти.

На первых нескольких устройствах Android у них было внутреннее хранилище, которое представляло собой раздел, в котором хранилась ОС и установленные приложения. Современные устройства по-прежнему имеют этот тип внутренней памяти (теперь вы увидите 1-2 ГБ этого типа памяти на более дорогих устройствах). Эта область хранения недоступна для пользователя (если он не имеет root-прав).

Другой тип «внутреннего» хранилища обычно намного больше по размеру и доступен пользователю. Этот тип хранилища обычно встречается на устройствах, которые не поставляются с SD-картой. На данный момент (июнь 2012 г.) я думаю, что 8 или 16 ГБ являются наиболее распространенными размерами для этого типа хранилища.

Таким образом, на устройстве без SD-карты ваш метод вернет вам путь, ведущий ко второму типу «внутреннего» хранилища. На самом деле, в основном здесь произошло то, что они поместили эту флэш-память в устройство и, по сути, обманули ОС, заставив ее видеть ее так же, как SD-карту, но без возможности размонтировать / удалить.

person FoamyGuy    schedule 03.06.2012
comment
идеально! спасибо! это то, что мне нужно было знать, я также нашел это, общедоступное статическое логическое значение isExternalStorageRemovable () Так как: уровень API 9 Возвращает, является ли основное внешнее запоминающее устройство съемным. Если возвращается значение true, это устройство является, например, SD-картой, которую пользователь может удалить. Если возвращается false, хранилище встроено в устройство и не может быть удалено физически. который поддерживает вас! :) спасибо еще раз!! - person user1429371; 03.06.2012