¿Existe algún almacenamiento global no removible disponible para las aplicaciones en cada dispositivo android?

Necesito almacenar los datos en el dispositivo de android y desearé tener acceso a estos datos de diversas aplicaciones (a través de los servicios en fondo).

Podemos lograr esto utilizando el almacenamiento externo. Pero es posible que si es desmontable, entonces no estará disponible cuando se monta en la PC o se elimina. Por lo tanto, ¿hay algún almacenamiento permanente no extraíble global siempre disponible para todas las aplicaciones en cada dispositivo Android? Si es así cómo puedo acceder a ella.

Por favor guíame. Gracias por adelantado.

Pero es posible que si es desmontable, entonces no estará disponible cuando se monta en la PC o se elimina.

"montado en la PC" no es un problema en Android 3.0 +, aunque está en Android 1.x / 2.x. Y el almacenamiento externo rara vez se puede quitar en dispositivos con Android 3.0.

Por lo tanto, ¿hay algún almacenamiento permanente no extraíble global siempre disponible para todas las aplicaciones en cada dispositivo Android?

Almacenamiento externo es tan cerca como usted va a conseguir. Esto significa que usted puede desear reconsiderar su plan original. Dependiendo de la naturaleza de la (s) aplicación (s), la respuesta puede ser que una aplicación tiene los datos de almacenamiento interno y está haciendo que los datos estén disponibles para otras aplicaciones en su suite a través de un ContentProvider . Esto tiene más posibilidades de seguridad de grano fino que el almacenamiento externo.

El almacenamiento del sistema de archivos no le ayudará, como en todas partes, sus aplicaciones pueden leer / escribir cada otra aplicación también puede leer / escribir / borrar y terminará en una situación similar a la de la sección sdcard.

BTW: Desmontar la sección de tarjeta SD cuando se conecta a un PC sólo funciona en dispositivos desactualizados. Los dispositivos actuales sólo utilizan el protocolo MTP, que permite el acceso de Android y PC al mismo tiempo.

Si varias aplicaciones están trabajando juntas hay muchas maneras de compartir datos entre sí:

  1. Utilice la función sharedUserId en cada aplicación (AndroidManifest.xml).
  2. Haga una "aplicación de almacenamiento" que tenga uno o más Proveedores para acceder a los datos de diferentes aplicaciones. Asegúrelos utilizando un permiso autodefinido.

Puede utilizar el almacenamiento interno con FileOutputStream , tal y como se explica aquí en la documentación .

De forma predeterminada, esos archivos son privados para tu aplicación, pero puedes cambiarlos con Context.MODE_WORLD_WRITEABLE o Context.MODE_WORLD_READABLE .

Pero, por favor, tenga cuidado con eso, ya que puede causar algunos problemas de seguridad en su aplicación. Tal vez podrías usar Intents u otras maneras de hacer ese enlace entre tus aplicaciones.

Para obtener más información al respecto, consulte la documentación .

Cada dispositivo que ejecute android 4.0+ se basa en MTP (MEDIA TRANSFER PROTOCOL), lo que significa que si monta su dispositivo en la PC, seguirá estando disponible para su aplicación, así que no se preocupe demasiado. Debe haber leído algunos artículos obsoletos sobre esto.

EDIT: Según la respuesta de CommonsWare , es 3.0 + , incluso, pero los dispositivos que ejecutan Android 3.x son tan raros que son básicamente muertos.

  1. Para primitivas ligeras (strings / ints, etc), puede escribir en la configuración del sistema, que es difícil de eliminar por los usuarios finales.
  2. Puede exponer los datos de la aplicación utilizando el indicador Context.MODE_WORLD_READABLE.
  3. Utilice ContentProvider para los datos estructurados. Utilice las autorizaciones y permisos para que solo se le permita a sus aplicaciones leer / escribir en el proveedor de contenido.
  4. El almacenamiento externo, pero como usted ha dicho, no es fiable. Los datos en él son públicos y visibles para todas las aplicaciones y también para el usuario final. Los datos son fácilmente eliminados por los usuarios y algunas aplicaciones de limpieza.
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.