2011-06-27 12 views
15

Estoy usando downloadmanager.request enqueue setDestinationUri a archivos de descarga.¿Se puede descargar a la memoria interna?

¿Es posible descargar los archivos a la ubicación de la memoria interna del dispositivo donde puede ser persistente?

estoy usando Android 3.1 dispositivo Xoom y que en realidad no tienen una tarjeta SD funcional en él a pesar de la aplicación nos permite escribir a /mnt/sdcard ubicación.

¿Hay alguna manera de almacenar el archivo descargado en la memoria interna?

TIA

+0

¿Las tarjetas SD/SD en un dispositivo nido de abeja no se escriben en la memoria interna? ¿No es esto lo que quieres? – maxpower47

+2

No creo que/mnt/sdcard califique como memoria interna. La ruta absoluta para esa ubicación está dada por Environment.getExternalStorageDirectory(). GetAbsolutePath() y está bastante claro que es External –

+0

Lo que estoy diciendo es que el xoom (y otros dispositivos HC) map/sdcard a un punto en el interior 16 o 32 GB de memoria como solución alternativa para las aplicaciones que esperan que esté presente una tarjeta sd. Para las aplicaciones parece que está en una tarjeta SD, pero internamente, está escrita en el flash interno. – maxpower47

Respuesta

20

Es poco probable que DownloadManager será capaz de hacer esto. Mi suposición es que DownloadManager no se ejecuta en su proceso, sino en otro proceso controlado por el sistema. Las ubicaciones de almacenamiento interno tienen permisos protegidos y cualquier ubicación que usted proporcione solo será accesible para su aplicación.

Parece que tiene dos opciones.

(1) Proporcione una ruta de archivo en el almacenamiento "externo", cuando se complete, cópielo en el almacenamiento interno y luego elimine el archivo en el almacenamiento externo.

(2) Cree un ContentProvider en el que DownloadManager pueda escribir y darle un URI que corresponda a este ContentProvider. El ContentProvider que implemente puede escribir el archivo en el almacenamiento interno, ya que se ejecutará en el contexto de su aplicación.

+0

@cygnus: esto suena prometedor. Déjame probar (2) y actualizaré el hilo. Gracias. –

+2

+1 por sugerir un 'ContentProvider' –

+2

@cyngus: ¿podría dar un ejemplo de la opción 2? – RvdK

Cuestiones relacionadas