2014-06-22 3 views
0

Je souhaite sauvegarder les papiers peints sur le stockage externe si celui-ci est disponible ailleurs enregistrer dans le stockage interne de l'appareil.Mon code fonctionne avec des périphériques avec stockage externe monté mais échoue lorsque le stockage externe n'est pas disponible . mon code court est affiché ci-dessousSauvegarder cette image dans un emplacement externe Stockage si disponible

public FileOutputStream getOutStream(String fileName) throws FileNotFoundException{ 
    if (Environment.getExternalStorageState().equals(
      Environment.MEDIA_MOUNTED)) { 
     String sdpath = Environment.getExternalStoragePublicDirectory(
       Environment.DIRECTORY_PICTURES) 
       + "/"; 
     mSavePath = sdpath + "DroidPack"; 
     File file = new File(mSavePath); 
     if (!file.exists()) { 
      file.mkdir(); 
     } 
     File saveFile = new File(mSavePath, fileName); 

     return new FileOutputStream(saveFile); 


    }else{ 
     String sdpath = mContext.getFilesDir().getPath() + "/"; 
     mSavePath = sdpath + "DroidPack"; 
     File file = new File(mSavePath); 
     if (!file.exists()) { 
      file.mkdir(); 
     } 
     return mContext.openFileOutput(fileName , Context.MODE_WORLD_READABLE); 
     } 
} 

}

Répondre

1

Jetez un oeil à la Android Documentation

Néanmoins, vous devriez essayer ceci:

boolean mExternalStorageAvailable = false; 
boolean mExternalStorageWriteable = false; 
String state = Environment.getExternalStorageState(); 

if (Environment.MEDIA_MOUNTED.equals(state)) { 
    // We can read and write the media 
    mExternalStorageAvailable = mExternalStorageWriteable = true; 
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
    // We can only read the media 
    mExternalStorageAvailable = true; 
    mExternalStorageWriteable = false; 
} else { 
    // Something else is wrong. It may be one of many other states, but all we need 
    // to know is we can neither read nor write 
    mExternalStorageAvailable = mExternalStorageWriteable = false; 
} 

Vous en train de vérifier une condition!

J'espère que ça aide!

Questions connexes