Intercambio de datos entre dos aplicaciones

Recientemente tuve una entrevista en la que se me preguntó cómo “¿Cómo podría compartir los datos entre dos aplicaciones instaladas o apk?”

No tenía ninguna respuesta para esta pregunta. ¿Alguien puede ayudarme a determinar una manera de hacerlo?

ContentProviders es un buen enfoque para compartir datos entre aplicaciones.

Enviar datos desde la Aplicación 1 (por ejemplo: el nombre del paquete de la Aplicación 1 es “com.sharedpref1”).

SharedPreferences prefs = getSharedPreferences("demopref", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("demostring", strShareValue); editor.commit(); 

Reciba los datos en la aplicación 2 (para obtener datos de las preferencias compartidas en la aplicación 1).

  try { con = createPackageContext("com.sharedpref1", 0);//first app package name is "com.sharedpref1" SharedPreferences pref = con.getSharedPreferences( "demopref", Context.MODE_PRIVATE); String your_data = pref.getString("demostring", "No Value"); } catch (NameNotFoundException e) { Log.e("Not data shared", e.toString()); } 

En ambos archivos de manifiesto de la aplicación, agregue la misma identificación y etiqueta de usuario compartida,

  android:sharedUserId="any string" android:sharedUserLabel="@string/any_string" 

ambos son iguales … y la etiqueta de usuario compartida debe ser de string.xml

como este ejemplo.

  

Sospecho que probablemente buscaban métodos específicos de Android, como la respuesta del proveedor de contenido.

Otras alternativas … Android específico: servicios remotos General: conexiones TCP / IP General: escritura en una ubicación en la tarjeta SD

¿Le interesa saber más sobre un método específico?

También robando esta pregunta para una entrevista de hoy 🙂

Si desea compartir datos entre aplicaciones, asegúrese de firmar con la misma clave:

Intercambio de código / datos a través de permisos: el sistema Android proporciona la aplicación de permisos basados ​​en firmas, de modo que una aplicación puede exponer la funcionalidad a otra aplicación que está firmada con un certificado específico. Al firmar varias aplicaciones con el mismo certificado y utilizar comprobaciones de permisos basadas en firmas, sus aplicaciones pueden compartir código y datos de manera segura.

Esto se cita de: página de desarrollador de Android sobre la firma

Si se trata de una cantidad pequeña de datos, puede enviarla a través de un bash.

El proveedor de contenido es el componente de Android, que debe usarse si una aplicación desea compartir sus datos con otra aplicación.

Nota: Los archivos, SqliteDatabases, archivos de preferencias compartidas creados por una aplicación son privados para esa aplicación únicamente. Otra aplicación no puede acceder directamente a ella. Si el progtwigdor expone la base de datos mediante el uso de proveedor de contenido, solo esa información es accesible para otras aplicaciones. Para comunicarse con el proveedor de contenido, use la resolución de contenido.