Problema con freeSpace y UsedSpace, simulador ok


(system) #1

Buenos días :smiley: ,

en estos momentos estoy realizando mi primera aplicación en Firefox OS, en éste, he creado dos botones en los que invoco a los métodos freeSpace y UsedSpace para que me indique cuánto ocupan mis imágenes. El caso es que en el simulador me funcionan perfectamente, pero al probar la app en mi ZTE Open, me salta el .onerror. Sabéis a qué puede deberse esto?

Os dejo el fragmento de los botones por si hay algo que no estoy haciendo bien, pero es que no entiendo porque en un lado sí me funciona y en el otro no…

Si por favor me pudieseis echar una mano os lo agradecería.

$("#btnFreeSpace").click(function(){
var pict = navigator.getDeviceStorage(‘pictures’);
var request = pict.freeSpace();

request.onsuccess = function () {
	// El resultado se expresa en bytes, se convierte en Gigabytes
	var size = this.result / Math.pow(10,9);

	console.log("Quedan " + size.toFixed(2) + "GB de espacio libre en tu dispositivo");
	alert("Quedan " + size.toFixed(2) + "GB de espacio libre en tu dispositivo");
}

request.onerror = function () {
	console.warn("No se puede obtener el espacio libre disponible en el dispositivo: " + this.error);
	//alert("No se puede obtener el espacio libre disponible en el dispositivo: " + this.error);
}

});

$("#btnUsedSpace").click(function(){
var pict = navigator.getDeviceStorage(‘pictures’);
var request = pict.usedSpace();

request.onsuccess = function () {
        //El resultado es expresa en bytes, permite convertirlo en megabytes
	var size = this.result / 1048576;
	console.log("Las imagenes almacenadas en tu dispositivo ocupan " + size.toFixed(2) + "Mb de espacio");
	alert("Las imagenes almacenadas en tu dispositivo ocupan " + size.toFixed(2) + "Mb de espacio");
}

request.onerror = function () {
	console.warn("No se puede obtener el espacio que utilizan las imagenes " + this.error);
	//alert("No se puede obtener el espacio que utilizan las imagenes " + this.error);
}

});

Un saludo.


Verónica


(system) #2

Y…voilá!

Después de darle mil vueltas ¡ya consigo que mi dispositivo tenga acceso interno para que pueda ver cuanto ocupan mis imágenes! Por lo que me funcionan mis dos botones. :smiley:

Al final era una tontería, y lo que es de código estaba todo bien, no he tenido que tocar nada, a sido revisando bien el manifest, cuando he visto que no tenía indicados los permisos (ya que para DeviceStorage hace falta que sean del tipo *privileged *o certified, lo pone en su api), en mi caso como sólo eran imágenes tuve que añadir sólo estas líneas, que pensaba que ya las había puesto y se conoce que no lo guardé, vaya cabeza…jejej:

[code]

“type”: “privileged”,
“permissions”: {
“device-storage:pictures”:{ “access”: “readwrite” }
}[/code]

Espero que mi respuesta a algun@ de vosotr@s os sirva de ayuda, porque no dejan de ser tonterías, pero que nos quitan más tiempo del necesario.

Un saludo.


Verónica