2015-02-08 3 views
1

Я попытался получить путь сд карты для хранения изображения, используя этот код:
андроид путь сд карты для всех устройств

String filepath = Environment.getExternalStorageDirectory().getAbsolutePath();

Но didnot работу для всех устройств и всех версий Android.

+1

[Внешнее запоминающее устройство] (http://commonsware.com/blog/2014/04/08/ storage-situation-external-storage.html) обычно не является [сменным хранилищем] (http://commonsware.com/blog/2014/04/09/storage-situation-removable-storage.html). – CommonsWare

ответ

0

мне удалось сделать это с помощью этого кода:

public File getSDPath() { 
    String filepath = Environment.getExternalStorageDirectory() 
      .getAbsolutePath(); 

    if (android.os.Build.DEVICE.contains("samsung") 
      || android.os.Build.MANUFACTURER.contains("samsung")) { 
     File f = new File(Environment.getExternalStorageDirectory() 
       .getParent() + "/extSdCard"); 
     if (f.exists() && f.isDirectory()) { 
      try { 
       File file = new File(f, "test"); 
       FileOutputStream fos = new FileOutputStream(file); 
       filepath = Environment.getExternalStorageDirectory() 
         .getParent() + "/extSdCard"; 
      } catch (FileNotFoundException e) { 
      } 

     } else { 
      f = new File(Environment.getExternalStorageDirectory() 
        .getAbsolutePath() + "/external_sd"); 
      if (f.exists() && f.isDirectory()) { 
       try { 
        File file = new File(f, "test"); 
        FileOutputStream fos = new FileOutputStream(file); 
        filepath = Environment.getExternalStorageDirectory() 
          .getAbsolutePath() + "/external_sd"; 
       } catch (FileNotFoundException e) { 
       } 

      } 
     } 
    } 

    return new File(filepath); 
} 
+0

Это не будет работать для всех устройств, например, на моем китайском телефоне, съемная SD-карта находится в '/ mnt/extsd /' – JonasCz

+0

Это правильно, но у меня нет лучшего решение. Если кто-то может нам помочь, я буду благодарен. – Sayed

0

Попробуйте это:

String sdcardPath = Environment.getExternalStorageDirectory().getPath(); 
+0

Та же проблема возникает на некоторых телефонах галактик – Sayed

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