Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En algunas situaciones podra ser til almacenar los datos en una tarjeta SD (tener en cuenta que no todos los
dispositivos Android cuentan con esta caracterstica), esto debido a su mayor capacidad o la facilidad de compartir los
archivos con otras personas entregando la tarjeta SD.
Crear una app que permita ingresar el nombre de un archivo y el contenido. Permitir grabar los datos ingresados al
presionar un botn. Disponer un segundo botn que permita recuperar los datos del archivo de texto.
Hacer que los archivos se graben en una tarjeta SD.
La interfaz visual a implementar es la siguiente:
Podemos ver en la ventana "Component Tree" que la interfaz contiene dos TextView, dos EditText y dos Button.
No olvidar inicializar las propiedades onClick de cada botn con los nombres de mtodos "guardar" y "buscar".
El primer paso es modificar el archivo AndroidManifest.xml para permitir el acceso a la tarjeta SD desde nuestra
aplicacin esto lo hacemos desde el editor de texto del Android Studio
En la carpeta app/manifests podemos abrir el archivo "AndroidManifest.xml" y agregar la lnea de permiso de acceso a la
memoria externa del dispositivo:
osw.flush();
osw.close();
Toast.makeText(this,"Las notas fueron guardadas correctamente",Toast.LENGTH_SHORT).show();
etNombreArchivo.setText("");
etNotas.setText("");
}
catch (IOException ioe)
{
Toast.makeText(this, "No se pudo guardar",
Toast.LENGTH_SHORT).show();
}
}
Para la lectura del archivo nuevamente obtenemos la referencia de la tarjeta SD para obtener el path de la unidad de
almacenamiento, el resto del algoritmo es similar al visto con un archivo interno:
public void buscar(View v) {
String nomarchivo = etNombreArchivo.getText().toString();
File tarjeta = Environment.getExternalStorageDirectory();
File file = new File(tarjeta.getAbsolutePath(), nomarchivo);
try {
FileInputStream fIn = new FileInputStream(file);
InputStreamReader archivo=new InputStreamReader(fIn);
BufferedReader br=new BufferedReader(archivo);
String linea=br.readLine();
String todo="";
while (linea!=null)
{
todo=todo+linea+"\n";
linea=br.readLine();
}
br.close();
archivo.close();
etNotas.setText(todo);
} catch (IOException e)
{
Toast.makeText(this, "No se pudo leer",
Toast.LENGTH_SHORT).show();
}
}
Si lo probamos con el emulador del Nexus 5 en el Android Studio cuando tratemos de grabar nos mostrar la
notificacin "No se pudo grabar", esto debido a que dicho celular no permite extender la memoria mediante tarjetas sd.
La solucin para probar es crear otro dispositivo virtual. Los pasos para crear otro dispositivo virtual en Android Studio
son los siguientes:
Aparece un dilogo con todas las mquinas virtuales creadas hasta el momento (en las primeras versiones de Android
Studio crea una mquina virtual para el Nexus 5)
Finalmente ya tenemos configurado nuestra nueva mquina virtual que permite almacenar datos en una tarjeta sd.
Cuando ejecutemos nuevamente un proyecto tenemos que seleccionar esta nueva mquina virtual para que arranque:
Como podemos ver se almacenan en una carpeta que no tiene nada que ver con la carpeta donde se almacenan los
archivos de texto internos.
Esta app debe estar al menos en dos idiomas