Autore Topic: gestione memorie: interna esterna e rimovibile  (Letto 1044 volte)

Offline kekko986

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Google+
    • Mostra profilo
    • Phorganizer
  • Dispositivo Android:
    GalaxyNexus | AOKP/CM9 | franco.Kernel
  • Play Store ID:
    Fra.c Labs
  • Sistema operativo:
    Ubuntu 12.04 LTS
gestione memorie: interna esterna e rimovibile
« il: 26 Maggio 2012, 08:51:04 CEST »
0
buongiorno a tutti.. non riesco a gestire le tipologie di memorie in oggetto, e sono in forte confusione
sto cercando di calcolare lo spazio disponibile sulle memorie(o partizioni è più corretto?) montate sul dispositivo..
allora... lo scenario:
il codice che sto usando per ora è
Codice (Java): [Seleziona]
            StatFs ext_stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
            long ext_bytesAvailable = (long)ext_stat.getBlockSize() * (long)ext_stat.getAvailableBlocks();
            long ext_megAvailable = ext_bytesAvailable / (1024 * 1024);
            String ext_space = getString(R.string.available_space) +  " : " +ext_megAvailable +" MB";
            txt_ext_space.setText(ext_space.toString());
            String ext_path = getString(R.string.path)+ " : " +Environment.getExternalStorageDirectory().getPath()+ (String)"/DCIM/";
            txt_ext_path.setText(ext_path.toString());
           
          /////////////////////////////////////////WIP// if(Environment.isExternalStorageRemovable()){
                    StatFs int_stat = new StatFs(Environment.getDataDirectory().getPath());
                    long int_bytesAvailable = (long)int_stat.getBlockSize() * (long)int_stat.getAvailableBlocks();
                    long int_megAvailable = int_bytesAvailable / (1024 * 1024);
                    String int_space = getString(R.string.available_space) +  " : " +int_megAvailable +" MB";
                    txt_int_space.setText(int_space.toString());
                    String int_path = getString(R.string.path) +  " : " +Environment.getDataDirectory().getPath();//WIP// + (String)"/DCIM/";
                    txt_int_path.setText(int_path.toString());

sul galaxy nexus ottengo
getExternalStorageDirectory = 9597 MB disponibili
getDataDirectory = 9597 MB disponibili
e fin qui mi trovo.. perchè è un unica partizione di archiviazione (apps e dati insieme su file system EXT?3? se non erro)

sull htc wildfire, che ha 175mb di memoria interna e una sd inserita da 2gb ottengo
getExternalStorageDirectory = 1250 MB disponibili
getDataDirectory = 100 MB disponibili

sul galaxy s2 invece (come su altri dispositivi in commercio) la storia cambia ulteriormente..perchè abbiamo
  • una memoria interna
  • una esterna emulata
  • una esterna rimovibile (eventuale)

non ricordo bene i valori che avevo calcolato (senza sd rimovibile) ma fatto sta che sono in confusione... come faccio a gestire e trovare  la cartella di riferimento? dove viene montata la sd rimovibile? \mnt\emmc? \sdcard\external_sd?  aiuto... :'(

ho visto su http://developer.android.com/reference/android/os/Environment.html che ci sono anche i metodi
Codice (Java): [Seleziona]
static boolean   isExternalStorageEmulated()
Returns whether the device has an external storage device which is emulated.
Codice (Java): [Seleziona]
static boolean   isExternalStorageRemovable()
Returns whether the primary "external" storage device is removable.
ma non ci ho cavato un ragno da un buco......
grazie per l'attenzione!
francesco

EDIT:
java - How to find Internal(Default Phone Storage ) and External Storage(Removable sd card) in android? - Stack Overflow

purtroppo sembra non ci sia una soluzione "ufficiale" ma qualche espediente sarebbe veramente gradito... uno switch case per ogni dispositivo magari!? .-.
« Ultima modifica: 26 Maggio 2012, 09:04:12 CEST da kekko986 »

Offline kekko986

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Google+
    • Mostra profilo
    • Phorganizer
  • Dispositivo Android:
    GalaxyNexus | AOKP/CM9 | franco.Kernel
  • Play Store ID:
    Fra.c Labs
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:gestione memorie: interna esterna e rimovibile
« Risposta #1 il: 30 Maggio 2012, 12:13:54 CEST »
0
nessuno mi può dare qualche consiglio e/o delucidazione in merito?!?!