2011-04-21 19 views
30

Recientemente tuve una entrevista en la que me hicieron la pregunta "¿Cómo podría compartir los datos entre dos aplicaciones instaladas o apk?"Intercambio de datos entre dos aplicaciones

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

Respuesta

22

ContentProviders son un buen enfoque para compartir datos entre aplicaciones.

+2

Gracias por el enlace. Lamento preguntar, pero puede ser más específico sobre cómo compartir los datos. Cualquier ejemplo será de gran ayuda –

+0

[Este es un buen ejemplo simple] (http://marakana.com/forums/android/examples/64.html), utilizando una fuente de datos del sistema que está disponible para todas las aplicaciones. [Descargar muestra] (http://marakana.com/static/tutorials/ContentUserDemo.zip) –

+0

El enlace @BradParks estaba muerto –

4

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

Otras alternativas ... específicos Android - Servicios remotos general - conexiones TCP/IP general - escritura a una ubicación en la tarjeta SD

Care para saber más acerca de un método específico?

también robando esta pregunta para una entrevista hoy :)

0

proveedor de contenido es el componente androide, que tiene que ser utilizado si una aplicación quiere compartir sus datos con otra aplicación.

Nota: Los archivos, las bases de datos Sqlite, los archivos Sharedpreference creados por una aplicación son privados solo para esa aplicación. Otra aplicación no puede acceder directamente a ella. Si el programador 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.

4

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

/Código del intercambio de datos a través de permisos - El sistema Android proporciona basada en firmas aplicación de permisos, por lo que una aplicación puede exponer la funcionalidad a otra aplicación que está firmada con un certificado especificado . Al firmar varias aplicaciones con el mismo certificado y al usar comprobaciones de permisos basadas en firmas, sus aplicaciones pueden compartir código y datos de manera segura.

Esta es la cita de: android developer page about signing

Si se trata de una pequeña cantidad de datos que se puede enviar a través de una intención.

+0

¿Puedes indicar cómo recuperar o recuperar datos de una aplicación a otra? Ese enlace es más sobre la firma. –

16

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(); 

recibir los datos en la aplicación 2 (para obtener datos de 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 la aplicación manifiesta añadir misma ID de usuario & etiqueta compartida,

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

ambos son iguales ... y la etiqueta de usuario compartida debe de cadena.xml

como este ejemplo.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.xxxx" 
android:versionCode="1" 
android:versionName="1.0" 
android:sharedUserId="any string" 
android:sharedUserLabel="@string/any_string"> 
+6

¿no tienes que firmar las aplicaciones con la misma clave también? – John

+1

Muy bien explicado. Esta funcionando. Gracias amigo :-) –

Cuestiones relacionadas