Compartir archivos temporales entre aplicaciones sin tarjeta SD

Si creo un archivo temporal en el directorio de caché de mi aplicación no puedo, por ejemplo, enviarlo por correo electrónico como un archivo adjunto. Esto se debe a que la otra aplicación no tiene permiso para leer el archivo.

En API 9 y más, puedo configurar el archivo para ser legible en el mundo con setReadable (true, false). Por desgracia, estoy apuntando API nivel 7+. No quiero confiar en la presencia de una tarjeta SD, así que no puedo usar la ubicación devuelta por getExternalStorageDir () para almacenarla en caso de que no haya ninguna tarjeta presente.

¿Cómo puedo generar y compartir un archivo temporal de una manera que funcione, incluso sin tarjeta SD presente?

final String FILENAME = "file.tmp"; final String someData = "File data"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_WORLD_WRITEABLE | Context.MODE_WORLD_READABLE); fos.write(someData.getBytes()); fos.close(); 

http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang.String,%20int)

  • Permiso personalizado para la aplicación
  • Determinar mediante programación si la aplicación de Android tiene permiso al nivel del sistema
  • Google Play detecta nuevos permisos después de usar Android Studio
  • Períodos de ejecución de Android en las mejores prácticas de Android 6.0 (nivel de API 23)
  • GET_TASKS Permiso desactivado
  • StartBluetoothSco () lanza la excepción de seguridad (BROADCAST_STICKY) en ICS
  • ¿cómo se comprueban los permisos de seguridad de Android en tiempo de ejecución?
  • Android: java.lang.SecurityException: Permiso Denial: inicio Intención
  • ¿Cuáles son los diez permisos más mortales?
  • Android - Flash - Permiso para permitir la red asistida por Peer
  • ¿Por qué el comando SQLite 3 que usa la shell ADB de Android devuelve "permiso denegado"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.