Autore Topic: Impossibile scrivere nella SD Card virtuale (Eclipse)  (Letto 1061 volte)

Offline RandomMan

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E
  • Sistema operativo:
    Microsoft Windows XP
Impossibile scrivere nella SD Card virtuale (Eclipse)
« il: 24 Ottobre 2010, 16:16:28 CEST »
0
Salve, stavo leggendo il libro di Massimo Carli su Android ("Android, guida per lo sviluppatore") e mi sono bloccato al capitolo 8, in particolare nella sezione relativa alle SD Card.

In poche parole ho provato il progetto di test SDCardTest, che dovrebbe scrivere un file di testo nella sdcard virtuale creata tramite AVD. Il problema è che eseguendo il codice nell'emulatore non riesco a scrivere il file nella cartella virtuale (mi da errore "Non posso scrivere"), anche se io ho abilitato il permesso di scrittura usando <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> nel manifest.

Il frammento di codice non funzionante è

Codice (Java): [Seleziona]
public void saveFile(View button) {
                // Riferimento al valore inserito
                CharSequence inputData = editText.getText();
                // Resettiamo il messaggio di output
                output.setText("");
                // Se diverso da null salviamo il contenuto su file
                try {
                        // Otteniamo la root della memoria esterna
                        File sdcardDir = Environment.getExternalStorageDirectory();
                        // Creiamo il riferimento al nostro file
                        File file = new File(sdcardDir,FILE_PATH);                     
                        if(!file.canWrite()){
                                output.setTextColor(ERROR_COLOR);
                                output.setText(R.string.cant_write_message);                           
                                return;
                        }
                        FileOutputStream fos = new FileOutputStream(file);
                        DataOutputStream dos = new DataOutputStream(fos);
                        dos.writeUTF(inputData.toString());
                        dos.close();
                        output.setTextColor(SUCCESS_COLOR);
                        output.setText(R.string.ok_message);
                } catch (IOException e) {
                        e.printStackTrace();
                        output.setTextColor(ERROR_COLOR);
                        output.setText(e.getMessage());
                }
        }
Cosa può essere, ho seguito tra l'altro le istruzioni riportate sul libro alla lettera. Non so proprio che fare...

PS: come Android Virtual Machine sto usando un emulatore della versione 2.2 con una SDCard virtuale da 1024 Mb
« Ultima modifica: 24 Ottobre 2010, 17:21:27 CEST da JD, Reason: Usate i bbcode java e xml!! xD »

Offline RandomMan

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E
  • Sistema operativo:
    Microsoft Windows XP
Re:Impossibile scrivere nella SD Card virtuale (Eclipse)
« Risposta #1 il: 24 Ottobre 2010, 16:51:10 CEST »
0
che strano

togliendo il frammento

Codice (Java): [Seleziona]
if(!file.canWrite()){
                                output.setTextColor(ERROR_COLOR);
                                output.setText(R.string.cant_write_message);                           
                                return;
                        }

funziona tutto a meraviglia....boh
« Ultima modifica: 24 Ottobre 2010, 17:21:41 CEST da JD, Reason: Usate i bbcode java e xml!! xD »