Una rápida búsqueda en Google revela una nueva API en Java 7 que permite a los bits de permisos para ser twiddled para archivos individuales. Esto no ayuda con el cambio de la umask, pero debe permitir que usted para reemplazarlo después de la creación del archivo. Echa un vistazo:
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#setPosixFilePermissions%28java.nio.file.Path,%20java.util.Set%29
Si usted realmente necesita para cambiar el umask, no parece ser una función que actualmente están expuestas directamente por la BCL. Tendrás que recurrir a los nativos de llamadas, o el uso de la biblioteca, para hacerlo en su nombre. Puedo escuchar que las bibliotecas ya existe, usted estaría buscando uno que da acceso a POSIX funcionalidad del sistema operativo.
En cuanto a por qué los archivos en la sdcard ignorar el umask, sdcards normalmente están formateadas con el sistema de ficheros vfat, que es básicamente compatible con MS-DOS/Windows 95 y no reconoce el concepto de los usuarios. Como tal, no tiene manera de restringir el acceso a un archivo; si no se puede restringir el acceso de los usuarios en particular, entonces usted sólo estaría restringiendo el acceso de cualquier persona, y por qué querríamos hacer eso? :-)
Lo vfat tiene los atributos de archivo -- sólo lectura, oculto y de sistema. No hay una manera eficaz de mapa la mayoría de archivos de UNIX modo de combinaciones de estos. El conductor, por lo tanto, simplemente siempre los informes de los archivos como disponer de un determinado modo, se establece cuando el sistema de archivos montado. Android monta sdcards, para que de ese modo se devuelve como 0755 (-rwxr-xr-x).