Sto provando a selezionare un file immagine dalla galleria fotografica e scrivere sulla sdcard. Di seguito è riportato il codice che genera un'eccezione. Sembra lanciare questa eccezione quando si tenta di creare FileOutputStream. Ho aggiunto la seguente riga al file manifest nidificata all'interno dell'elemento dell'applicazione. Non riesco a trovare una soluzione al problema:java.io.FileNotFoundException (Autorizzazione negata) Durante il tentativo di scrittura sulla sdcard Android
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
public boolean saveSelectedImage(Uri selectedImage, int imageGroup,
int imageNumber)
{
boolean exception = false;
InputStream input = null;
OutputStream output = null;
if(externalStorageIsWritable())
{
try
{
ContentResolver content = ctx.getContentResolver();
input = content.openInputStream(selectedImage);
if(input != null) Log.v(CLASS_NAME, "Input Stream Opened successfully");
File outFile = null;
File root = Environment.getExternalStorageDirectory();
if(root == null) Log.v(CLASS_NAME, "FAILED TO RETRIEVE DIRECTORY");
else Log.v(CLASS_NAME, "ROOT DIRECTORY is:"+root.toString());
output = new FileOutputStream(root+"/Image"+ imageGroup + "_" + imageNumber + ".png");
if(output != null) Log.e(CLASS_NAME, "Output Stream Opened successfully");
// output = new FileOutputStream
// ("/sdcard/Image"+imageGroup+"_"+imageNumber+".png");
byte[] buffer = new byte[1000];
int bytesRead = 0;
while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0)
{
output.write(buffer, 0, buffer.length);
}
} catch (Exception e)
{
Log.e(CLASS_NAME, "Exception occurred while moving image: ");
e.printStackTrace();
exception = true;
} finally
{
// if(input != null)input.close();
// if(output != null)output.close();
// if (exception) return false;
}
return true;
} else
return false;
}
Hai richiesto il permesso di scriverlo nel tuo manifest? –
Ho trovato la risposta al mio problema L'elemento uses-permission deve essere all'esterno dell'elemento dell'applicazione nel file manifest. – joefischer1