2011-06-07 18 views
12

I construyó una aplicación para Android en androide 2.2, para guardar archivos en la tarjeta SD utilizo el siguiente:getExternalFilesDir alternativo en Android 2.1

context.getExternalFilesDir(null).getAbsolutePath(); 

devolver una cadena como:

/mnt/sdcard/Android/data/com.hello.example1/files 

Ahora necesito hacer que mi aplicación sea compatible con android 2.1, ¿qué método hago? para usar para obtener el directorio de archivos externos?


public static String sTellMeWhereToSaveMyData(Context context) 
{ 
     String packageName = context.getPackageName(); 
     File externalPath = Environment.getExternalStorageDirectory(); 
     File appFiles = new File(externalPath.getAbsolutePath() + "/Android/data/" + packageName+ "/"); 

     if (appFiles.exists() && appFiles.isDirectory()) 
     { 
      return appFiles.getAbsolutePath(); 
     } 
     else 
     { 
      if(appFiles.exists()) 
      { 
       Log.v("File Manager","not exists"); 
      } 
      if (!appFiles.mkdir()) 
      { 
       Log.v("File Manager","Could not create"); 
      } 
     } 
     return appFiles.getAbsolutePath(); 
} 

Respuesta

20

Usted debe componer el camino a ti mismo:

String packageName = context.getPackageName(); 
File externalPath = Environment.getExternalStorageDirectory(); 
File appFiles = new File(externalPath.getAbsolutePath() + 
         "/Android/data/" + packageName + "/files"); 
+0

tienes 2 cuestiones: 1. Es Environment.getExternalStorageDirectory **() ** 2. cerrar el soporte después de ** + "/ files") ** –

+0

Corregido eso. No revisé este código con el compilador. Pero de todos modos, esto debería haber demostrado lo que quise decir. – inazaruk

+0

@inazaruk: perfecto Lo estoy probando de inmediato, lo obtuve antes de editarlo, mi comentario fue solo por el bien de las otras personas que podrían enfrentar el mismo problema. –

Cuestiones relacionadas