Acceso al almacenamiento en el rincón
Lo más parecido a la documentación que puedo encontrar que tiene que ver con el almacenamiento de archivos esesta publicació (vea a continuación si no puede acceder), pero me deja con varias preguntas.
Realmente me gustaría una explicación bien informada de qué rutas se asignan a qué almacenamiento aquí, viendo cómo se supone que debemos codificarlas y con qué precisión se espera que accedamos a ellas. Una muestra de código real sería superlativa. Mi mejor conjetura de jugar con esto es que:
/ sdcard-> se asigna a la ranura interna eMMC y el acceso está restringido. Environment.getExternalStorageDirectory (); ... todavía devuelve esto. / media -> se asigna a la memoria interna de 8 GB (puedo escribir en esto) / data ->?? -> asigna a la tarjeta microSD opcional¿Cómo podemos acceder a la tarjeta sd externa (opcional, adicional, la que puede sacar), si / sdcard asigna al almacenamiento restringido en su lugar?
Ahora para citar los documentos de desarrollador de Nook:
Fondo Hay dos esquemas de partición diferentes para los dispositivos NOOK Color en el mercado hoy en día, uno con solo 250 MB disponibles para aplicaciones en la partición / data y otro con 4GB disponibles para aplicaciones en la partición / data. Como resultado, es imperativo que las aplicaciones se diseñen y desarrollen de tal manera que administren el espacio de manera efectiva. Las solicitudes que no lo hagan no serán aceptadas para su distribución a través de la Tienda.
ecomendación o solución técnica asociada a @Area si su aplicación requiere una gran cantidad de datos (incluidos, entre otros, imágenes, contenido de audio o video), debe descargar esos recursos en tiempo de ejecución y almacenarlos en la partición más grande del dispositivo. Si su aplicación va a solicitar y almacenar más de 100 MB de datos o recursos, DEBE cumplir con las siguientes restricciones:
Su aplicación debe indicar clara y explícitamente en la descripción, siempre que la aplicación utilice / entregue una gran cantidad de datos. DEBE escribir sus recursos y datos en la partición adecuada. Puede detectar si el dispositivo tiene una partición ampliada / de datos de la siguiente manera:
StatFs stat = new StatFs("/data");
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
if (megAvailable > 1000){
... write your resources in /data
} else {
... write your resources on /mnt/media ...
}
Para escribir datos en el espacio privado de su aplicación en / data
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_READABLE);
Su aplicación NO debe asumir la presencia de una tarjeta sd en el dispositivo, pero puede probarla a través de una llamada a
Environment.getExternalStorageState (); Si no se encuentra una tarjeta SD, su aplicación DEBE salir correctamente con una notificación al usuario sobre el motivo de la salida.
Recuerde que para acceder a la partición / media, así como a ExternalStorage, debe declarar en su manifiesto:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>