Quando si avvia la mia applicazione Android, ho bisogno di creare una directory sulla scheda SD, per un piccolo numero di utenti questo non riesce e non riesco a capire il motivo per esso ...mkdirs restituisce false per la directory su sd card mentre la directory superiore è scrivibile
(ho trovato problemi simili causati da permesso WRITE_EXTERNAL_STORAGE mancante, è lì e funziona per quasi tutti gli utenti in modo da non penso che questo sia motivo)
ho semplificata la situazione precedente per semplificare la spiegazione, se la creazione di una directory fallisce, eseguo un test case in cui provo a creare una directory .test sulla sdcard:
new File(Environment.getExternalStorageDirectory(), ".test").mkdir() -> false
new File(Environment.getExternalStorageDirectory(), ".test").mkdirs() -> false
proprietà dei file delle directory rilevanti:
/sdcard/.test (esiste = false CanWrite = false CanRead = false CanExecute = err isDirectory = false isFile = false)
/sdcard (esiste = true CanWrite = true CanRead = true CanExecute = err isDirectory = true isFile = false)
/(esiste = true CanWrite = false CanRead = true CanExecute = err isDirectory = true isFile = false)
getExternalStorageState = montato
(rendimenti CanExecute sbagliano perché il test viene eseguito su sdk < 9)
suggerimenti e le idee sono i benvenuti ...
Puoi mostrare il codice dove stai cercando di creare la directory? Ad esempio, se hai '/ sdcard' cablato, potrebbe esserci il tuo problema. – CommonsWare
@CommonsWare: sto usando Environment.getExternalStorageDirectory() e sto pensando di passare a Context.getExternalFilesDir (null) una volta che ho risolto questo problema ... modifico il mio post originale con il codice .. Grazie per la risposta veloce ! – Danny
Ricorda che 'getExternalFilesDir()' esiste solo per Android 2.2 ed è rotto in quella versione. Mi attenerei alla tua strategia attuale per il prossimo futuro. – CommonsWare