Обнаружение SDCard в Android? - PullRequest
       17

Обнаружение SDCard в Android?

2 голосов
/ 18 января 2012

Я использую следующий код для доступа к SDCard, если смонтирован еще с использованием внутренней памяти:

 if( android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
    {       
        //File file = Environment.getExternalStorageDirectory();

        videoPath=Environment.getExternalStorageDirectory()+"/cue_learn_data/video_files/"+VIDEO_FILENAME+".mp4";

    }
    else
     {

     videoPath="/cue_learn_data/video_files/"+VIDEO_FILENAME+".mp4";

     }

Но при использовании первого условия vidoePath не найдено. Кто-нибудь может помочь?

Ответы [ 4 ]

3 голосов
/ 18 января 2012
   public static boolean isSDCardPresent() {
    return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}

Редактировать : Согласно комментарию, обновлять ответ для новых версий.

if(isSDCardPresent() && System.getenv("SECONDARY_STORAGE") != null) { 
    Log.d("sd_status",""adcard available);
} else { 
    Log.d("sd_status", "sdcard not available"); 
}
3 голосов
/ 18 января 2012

попробуйте сделать это следующим образом:

String tmp = "/cue_learn_data/video_files/"+VIDEO_FILENAME+".mp4";
File myFile= new File(Environment.getExternalStorageDirectory(), tmp);

if(myFile.exists()){
    //further processing as your file exists
}
else{
    //seems like your file doesnt exist
}
1 голос
/ 18 января 2012
String state = Environment.getExternalStorageState();
if (!state.equals(Environment.MEDIA_MOUNTED))
   {
      Toast.makeText(Context, "NO EXTERNAL STORAGE FOUND",Toast.LENGTH_LONG).show();
   }
else
   {
     //Your code                
  }
1 голос
/ 18 января 2012

Проверьте этот код также. И измените этот код на что хотите?

String Videopath = Environment.getExternalStorageDirectory() + "/whatever you want for folder name";

public void saveScreenshot() 
    {
        if (ensureSDCardAccess()) 
        {
            File file = new File(Videopath + "/" + "your file name" + "your extension");
            FileOutputStream fos;
            try {
                fos = new FileOutputStream(file);
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
                fos.close();
            } catch (FileNotFoundException e) {
                Log.e("Panel", "FileNotFoundException", e);
            } catch (IOException e) {
                Log.e("Panel", "IOEception", e);
            }
        }
    }

    /**
     * Helper method to ensure that the given path exists.
     * TODO: check external storage state
     */
    private boolean ensureSDCardAccess() {
        File file = new File(mScreenshotPath);
        if (file.exists()) {
            return true;
        } else if (file.mkdirs()) {
            return true;
        }
        return false;
    }

Попробуй это. Это может вам помочь.

И проверьте это также при обнаружении SD-карты.

Я взял этот метод с сайта Droid Nova . Также проверьте этот пример.

...