Android: проблема разрешения внешнего хранилища: - PullRequest
1 голос
/ 29 августа 2011

Мне действительно нужен кто-то здесь, чтобы рассказать мне о некоторых проблемах с внешним хранилищем ИЛИ SD-картой.Я не буду вдаваться в сложности.У меня есть папка с именем MyVideos.Он находится в папке sd-карты Motrola Xoom;путь "/mnt/sdcard-ext/MyVideos. Папка уже там.Однако есть некоторые странные ошибки, которые у меня возникают. Например, если я проверяю, существует ли папка или нет, используя следующий код:

File myDirectory = new File(defaultStorage, "/MyVideos/"); 
if (myDirectory.exists())
{  
my code: lets say true
}
else
{
my code: false
}

где defaultStorage is = "/mnt/sdcard-ext".Это всегда возвращает ложь.Он должен вернуть true, поскольку папка там обязательно существует.И, предполагая, что папка там существует, я выполняю другие операции, такие как

for (File f : myDirectory.listFiles()) 
    {
        if (f.isFile())
        {
            filenames.add(f.getName()); //add to array

        }//if closes
     }//for closes

Я получаю исключение FATAL в следующей строке

for (File f : myDirectory.listFiles())

Стек ошибок приведен ниже:

E/AndroidRuntime(22644): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity         
E/AndroidRuntime(22644): Caused by: java.lang.NullPointerException

Я только что упомянул важные вещи из стека.Точнее, это NullPointerException.Хотя я использую

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

в моем файле манифеста.Даже тогда это не работает.Самый удивительный элемент - это то, что он работает нормально;но в США есть клиент, он падает на всех его устройствах. Есть ли разница в настройках разрешений устройств в Великобритании или в США? Я буду благодарен вам, если вы мне здесь поможете.большая проблема для меня.Спасибо

1 Ответ

0 голосов
/ 31 октября 2013

Согласно документации описываемое вами состояние означает, что внешнее хранилище недоступно для вас:

публичная статическая конечная строка MEDIA_SHARED

Добавлено на уровне API 1 getExternalStorageState () возвращает MEDIA_SHARED, если носитель не подключен и используется совместно с USB-накопителем.

Значение константы: «общая»

Вам нужно перейти к параметрам USB Mass Storage и отключить USB-накопитель.

PS: Благодаря DigCamara я скопировал с этого ТАКого ответа .

Спасибо

...