запись на SD-карту в Android - PullRequest
       23

запись на SD-карту в Android

0 голосов
/ 27 сентября 2011
public void initCache(Context context)
{
    this.context = context;
    //Find the dir to save cached images
    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
        cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"myapp");
    else
        cacheDir=context.getCacheDir();
    if(!cacheDir.exists())
        cacheDir.mkdirs();
}

У меня есть права доступа в файле манифеста, а также у меня установлена ​​карта sd.Но, несмотря на это, мое приложение пишет во внутреннюю память.Я использую Motorola Atrix.

1 Ответ

0 голосов
/ 27 сентября 2011

Environment.getExternalStorageState() возвращает путь к внутренней точке монтирования SD, например "/ mnt / sdcard"

Нет, Environment.getExternalStorageDirectory() относится к тому, что производитель устройства считает "внешним хранилищем",На некоторых устройствах это съемный носитель, например SD-карта.На некоторых устройствах это часть флэш-памяти на устройстве.Здесь «внешнее хранилище» означает «содержимое, доступное через режим USB Mass Storage при подключении к хост-машине», по крайней мере для Android 1.x и 2.x.

Но вопрос заключается ввнешняя SD.Как получить путь типа «/ mnt / sdcard / external_sd» (он может отличаться в зависимости от устройства)?

Android не имеет понятия «внешняя SD», кроме внешнего хранилища, как описановыше.

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

...