Escribir en el almacenamiento privado interno en Android

Estoy tratando de guardar algunos datos de mi aplicación en un archivo de texto simple en el área de almacenamiento privado interno (preferencias del usuario de la aplicación). He leído muchas preguntas aquí (StackOverflow) y probé las soluciones sugeridas sin éxito. Parece que la solución más simple sería la sugerida aquí:

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

pero no puedo hacer que esto funcione en mi dispositivo de prueba. También he intentado crear el archivo utilizando los métodos disponibles en el archivo java.io. con los métodos apropiados. También he intentado crear el archivo en la tarjeta SD con el mismo resultado, falla. He intentado muchas soluciones enumeradas en otras respuestas, siguiendo el código y las instrucciones sugeridas exactamente y encuentro el mismo resultado. Estoy empezando a sentir que me falta algún código importante, o una marca de configuración en alguna parte, he establecido el permiso en el archivo de manifiesto:

  <uses-permission 
        android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


Para que quede claro, estoy tratando de escribir en el almacenamiento privado interno del dispositivo. Es un pequeño archivo que contiene un nombre, número de teléfono y un par de tipos.int banderas Independientemente del método que use, encuentro que el archivo no se creó (o cambio si coloco el archivo manualmente en la tarjeta SD), u obtengo una NullPointerException cuando intento hacer referencia al archivo o la ubicación del archivo:

private              File   fILE = new File("Mydata", main.FILENAME);

o

private              File   fILE  = getDir("Mydata", 0);


Estoy ejecutando el código en un HTC Hero, actualizado con la última versión de servicio de Sprint. Cualquier ayuda sería GRANDEMENTE apreciada, ¡Gracias de antemano!

-Steve

Actualización (2/2/11): Utilizando un EVO (API 8) todavía obtengo una NullPointerException. El código que genera la excepción está debajo, ¿alguna idea de por qué mi aplicación no puede acceder al almacenamiento interno? Tengo este problema en tres dispositivos físicos diferentes que usan dos niveles de API (API 7 y 8).

    File newfile = new File(this.getFilesDir() + "/data/files/", "sample.txt");

ACTUALIZACIÓN 2: 2/4/11 - He descubierto que no puedo ver la estructura de archivos en el dispositivo físico (directorio de datos) bajo ninguna circunstancia. ¿Alguno tiene alguna idea sobre esto? El dispositivo está configurado correctamente y puede ejecutar aplicaciones desde eclipse o adb.

ACTUALIZACIÓN 3: (2/9/11) - Creo que puede haber encontrado cuál es el problema aquí, pero no estoy seguro de cómo tratarlo. He descubierto que los permisos en el directorio / data / en los dispositivos físicos son:drwxrwx--x. No estoy seguro de por qué es así, ¿tal vez algo relacionado con Sprint? He encontrado este conjunto de esta manera en un HTC Hero, Samsung Epic (Galaxy S) y HTC EVO, todo en Sprint. El problema parece ser que DDMS y mi aplicación no tienen acceso r / w al directorio. Necesito descubrir 2 cosas aquí, por qué es así y cómo superar este problema en la naturaleza. De nuevo, cualquier ayuda aquí sería IMPRESIONANTE !!

ACTUALIZACIÓN 4: Creo que el pasado febrero fue un momento totalmente rubio para mí (ver ACTUALIZACIÓN 3). Los dispositivos de prueba que tengo no están enraizados y, por lo tanto, no tienen acceso (¡DUH!). Después de todas las actualizaciones por las que han pasado SGS y EVO 4G, el resultado sigue siendo el mismo. Todavía estoy trabajando en este problema e intentaré volver pronto con una actualización (espero que sea menos de un año la próxima vez).

Respuestas a la pregunta(6)

Su respuesta a la pregunta