Autore Topic: sapere se la sd è montata  (Letto 709 volte)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
sapere se la sd è montata
« il: 12 Gennaio 2012, 23:36:06 CET »
0
ragazzi mi trovo davanti a un problema strano..
ho necessità di verificare se la sd è montata oppure se e' smontata o assente..
ho usato queste 2 righe:
Codice (Java): [Seleziona]
String state = Environment.getExternalStorageState(); // guarda se ' montata
                        boolean removibile = Environment.isExternalStorageRemovable(); //guarda se è rimovibile
                        Log.v(DEBUG_TAG, "la scheda è: "+state+" rimovibile: "+removibile);
che in teoria dovrebbe dire se la sd è montata e se e' removibile..
e infatti nell'emulatore funziona perfettamente..
ma sul mio galaxy s con sd smontata e rimossa,  mi dice che la sd ' mounted ma non removibile..
ho letto in giro che android dichiara una parte della memoria interna come se fosse una sd, e questo manda in tilt questa stringa..

avete idea di come aggirare questo problema e riuscire a sapere se realmente la sd è presente e montata?
« Ultima modifica: 13 Gennaio 2012, 01:17:32 CET da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:sapere se la sd è montata
« Risposta #1 il: 13 Gennaio 2012, 02:36:44 CET »
0
secondo voi una cosa di questo tipo sarà affidabile?
nell'emulatore e nel mio galaxy si comporta bene..cosa ne pensate?:
Codice (Java): [Seleziona]
                File rootext=(Environment.getExternalStorageDirectory());
                String cart=new String("/external_sd/abcba/abcba/");
                File dest=new File(rootext,cart);
                        boolean result=dest.mkdir(); // se la cartella è gia presente darà false, se non può crearla darà false.
                        boolean resultw=dest.canWrite();// true se scrivibile, false se non scrivibile
                        boolean cancella=dest.delete();// true se cancellabile,false se non cancellabile
                             Log.v(DEBUG_TAG, "si puo' scrivere la cartella?  "+result+"..  .."+dest);
                             Log.v(DEBUG_TAG, "si può scrivere nella cartella creata?  "+resultw);
                             Log.v(DEBUG_TAG, "si può cancellare la cartella?  "+cancella);

if (resultw==true&&cancella==true){

}else{

}
a me sembra di averla pensata giusta :D
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:sapere se la sd è montata
« Risposta #2 il: 13 Gennaio 2012, 09:22:19 CET »
0
scusami ma...non fai prima a fare un Exist sulla directory? :)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:sapere se la sd è montata
« Risposta #3 il: 13 Gennaio 2012, 12:34:02 CET »
0
non saprei..non mi convinceva molto l'exist..verifica solo se il file esiste, in questo modo invece testo anche se la sd è scrivibile oppure no..
più che altro non so se potrà funzionare sui dispositivi con multi sd card..non mi è mai capitato di averne uno tra le mani :D
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!