¿Dónde puede escribir una aplicación genérica en una tarjeta SD?

Tengo una tableta que ejecuta KitKat y me enfrento al problema de no poder escribir en la tarjeta SD (específicamente con QPython). No puedo rootear la tableta (todavía).

Tengo entendido que una aplicación solo puede escribir en un directorio especial que se crea para la vida útil de la aplicación en /extSdCard/Android/data.

De hecho, puedo ver allí un montón de directorios, algunos de los cuales tienen nombres que son los de mis aplicaciones (parece una forma de nombrar al estilo Java, no conozco Java, pero vi algunos volcados de pila espectaculares que tenían esa nomenclatura ).

Ahora, no veo nada cercano a QPython, lo que trae las preguntas:

  • ¿Todas las aplicaciones crean por defecto este directorio especial?
  • en caso afirmativo: ¿cómo puedo hacer coincidir el nombre de la aplicación con el directorio?
  • si no: ¿hay alguna forma de que dicha aplicación escriba en la tarjeta SD?

Respuestas (1)

Esas preguntas son bastante fáciles de responder:

  1. No, Android solo crea esas carpetas, si se usan. Esto es válido tanto para la SD interna como para la SD externa .
  2. Hay muchas formas de obtener el nombre del paquete (este es el nombre interno) de una aplicación. La forma más fácil sería ir a http://play.google.com(Google Play Store) en la PC y abrir la página de la aplicación allí, luego simplemente mirar la última parte de la URL: por ejemplo, https://play.google.com/store/apps/details?id=com.hipipal.qpyplus(la id=parte). Para QPythonesto es: com.hipipal.qpyplus.
  3. Cada aplicación puede escribir en su propia carpeta. Leer o escribir en otras carpetas de la tarjeta SD externa requiere permisos especiales.
Gracias. Re: 1: ¿"si se usan" significa "cuando la aplicación solicita crearlos"? En otras palabras, si no se crean al instalar la aplicación, ¿nunca tendrá la capacidad de escribir en la tarjeta SD? Mi QPythoninstalación no se creó /extSdCard/Android/data/com.hipipal.qpyplus. ¿Significa eso que ninguno de los scripts que escribiré (y que ejecutará esta aplicación, heredando sus derechos de acceso) tendrá la capacidad de escribir en la tarjeta SD externa?
Android crea automáticamente esas carpetas cuando la aplicación intenta escribir en esa carpeta por primera vez. Asegúrese QPythonde tener todos los permisos necesarios para hacerlo.
Intenté crear el directorio desde dentro de la aplicación (falló) y escribir directamente en un archivo dentro de este directorio inexistente (con la esperanza de que apareciera de milagro, pero también falló).