2013-10-08 4 views
0

У меня есть доступ к этому файлу: Файл: ///mnt/sdcard/DCIM/Camera/1381243874374.jpgНе удается получить доступ к внутреннему хранилищу Android.?

Он должен быть во внутренней памяти .. но если я даю Android этому пути, он может» t загрузите файл. Какие-либо предложения?

Спасибо!

+0

внутренний 'storage', а не память. память! = хранение. –

+0

благодарит за комментарий. Вопрос исправлен :) – Filnik

+0

Нет, то есть в том, что считается «внешним» хранилищем, даже если оно расположено во флэш-чипах, постоянно паянных на плату, а не съемной микро SD-карте. Кроме того, это явный путь к местоположению, действительный только в * некоторых * версиях Android. Вы действительно должны найти применимую точку монтирования во время выполнения с использованием внешних API хранения. –

ответ

1

Хорошо, я это исправил так:

String[] split = path.split("sdcard/"); 
    path = split[1]; 

    File sd = Environment.getExternalStorageDirectory(); 
    path = sd.getAbsolutePath() + '/' + path; 
+0

если «путь» - это Uri, просто выполните File sd = new File (uri.getPath()); – dymmeh

+0

@dymmeh - важная часть того, что происходит здесь, - это обнаружение временного пути * фактического * внешнего хранилища (точки монтирования) на конкретном устройстве, где оно выполняется –

+0

@ChrisStratton Я предположил, что он получал путь во время выполнения поэтому он должен указывать на правильное место хранения. Если это не так, тогда, да, моя точка зрения неверна. – dymmeh

Смежные вопросы