Avisos

Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 30/04/13, 13:11:06
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
mkdirs() y list()

buenas! tengo un problemilla con estas 2 instrucciones.

Estoy probando en 2 moviles : Galaxy S2 sin rootear y un Galaxy S1 rooteado. (no creo que el modelo de movil influya)

Quiero guardar unas imagenes desde codigo en una carpeta que la llamo por ejemplo: "directorio"

Lo que hago es intentar acceder a este directorio y si no existe lo crea despues recorro el directorio para ver cuantas imagenes hay ya creadas para asignarle un nombre diferente: pongo codigo:
Código:
File sdCard = Environment.getExternalStorageDirectory();
		File dir = new File (sdCard.getAbsolutePath() + "/media/directorio");
		if(!dir.exists())
			dir.mkdirs();

		String[] lista = dir.list();
		int numfinal=0;
		for(int i=0;i<lista.length;i++){
			String cadena = lista[i];
			String sub = cadena.substring(9,cadena.length()-4);
			int num = Integer.parseInt(sub);
			if(num>numfinal)numfinal=num;
		}
		numfinal++;
		String strfinal = String.valueOf(numfinal);
		strfinal = "IMG"+strfinal;
		GuardarImagen(strfinal);
de esta manera si tengo 2 imagenes (IMG1 e IMG2) la siguiente se guardaria como IMG3

hasta aqui en el galaxy s2 funciona genial y lo hace perfecto pero en el galaxy s1 rooteado da un null exception, debugueando llego a que String[] lista = dir.list(); no lo hace bien, es decir lista == null; entonces al intentar acceder a ella da esa excepcion.

En el manifest tengo <uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ORAGE"/>

tambien probe en una nexus 7 y si funciona.

¿Alguien sabe que puede estar pasando?

Muchas gracias!!! Otra vez!
Responder Con Cita


  #2  
Viejo 01/05/13, 12:57:37
Array

[xs_avatar]
rinxe rinxe no está en línea
Miembro del foro
 
Fecha de registro: mar 2009
Localización: Teruel
Mensajes: 260
Modelo de smartphone: Xiaomi Mi5S
Tu operador: Yoigo
Es raro lo que comentas ya que funciona en 2 dispositivos y en el S1 no. Lo unico que se me ocurre es que compruebes el almacenamiento externo antes de hacer esos pasos.

En mi blog tienes un ejemplo de opciones de almacenamiento y explico un poco el tema por si le quieres hechar un ojo.
__________________
Visita mi blog: EL BAUL DE ANDROID
Responder Con Cita
  #3  
Viejo 03/05/13, 10:43:53
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Siguiendo tu blog me di cuenta de que en vez de "mounted" pone "removed" cuando hago Environment.MEDIA_MOUNTED.equals(state) sabes por que pasa esto? o si se puede soluccionar?

Muchas gracias
Responder Con Cita
  #4  
Viejo 03/05/13, 12:10:03
Array

[xs_avatar]
rinxe rinxe no está en línea
Miembro del foro
 
Fecha de registro: mar 2009
Localización: Teruel
Mensajes: 260
Modelo de smartphone: Xiaomi Mi5S
Tu operador: Yoigo
Cuando esta en el estado "removed" quiere decir que no esta presente o no se detecta el almacenamiento masivo.

El fallo esta claro que viene del S1, comprueba que al ejecutar la aplicacion tengas acceso desde el S1 al almacenamiento masivo. Puede ser que tengas una rom personalizada y te este dando problemas, eso ya lo tendras que investigar tu
__________________
Visita mi blog: EL BAUL DE ANDROID
Responder Con Cita
  #5  
Viejo 03/05/13, 12:23:11
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Muchas gracias! yo tambien pense que seria del s1...puesto que si funciona en los demas...he puesto este codigo para avisar a los usuarios de que tienen que activarlo.
Código:
  if (Environment.MEDIA_REMOVED.equals(state)) {
	    	Toast.makeText(this,"Tienes el almacenamiento masivo desactivado, no puedes guardar la imagen, activalo!", Toast.LENGTH_SHORT).show();
	    }
Responder Con Cita
  #6  
Viejo 03/05/13, 15:45:50
Array

[xs_avatar]
rinxe rinxe no está en línea
Miembro del foro
 
Fecha de registro: mar 2009
Localización: Teruel
Mensajes: 260
Modelo de smartphone: Xiaomi Mi5S
Tu operador: Yoigo
Es una opcion sii, ya has visto los diferentes tipos de comprobar el almacenamiento masivo. Ya es cuestion de elegir que hacer en cada caso.

Normalmente se pierde o no esta presente el almacenamiento masivo cuando conectas el movil al pc
__________________
Visita mi blog: EL BAUL DE ANDROID
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 00:26:12 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /