2011-01-09 17 views
16

Necesito ayuda sobre cómo comenzar a desarrollar dos aplicaciones de Android (en un teléfono) que se comunican entre sí.comunicación android entre dos aplicaciones

  1. Aplicación A envía una cadena de aplicación B.
  2. aplicación B recibe la cadena, por ejemplo, "startClassOne", app B usando un método comienza ClassOne y obtiene el resultado. El resultado es enviado de vuelta (de nuevo como cadena!) Para Aplicación A.
  3. Aplicación A escribe en la consola de la cadena recibida de B.
+0

¿Desea crear un chat como la aplicación? –

+0

no, las aplicaciones deben comunicarse entre sí, las actividades en la aplicación B deben hacer cosas como vibrar, cambiar la luz, etc., y si, por ejemplo, se inicia la vibración, la aplicación B envía una cadena de resultados similar ("vibrar con éxito") a la aplicación A (la aplicación a va a hacer mucho más más adelante, pero para este ejemplo solo necesito comunicarme entre estas dos aplicaciones) – androidTesting

Respuesta

33

Hola, necesito un poco de ayuda en la forma de empezar a desarrollar dos aplicaciones de Android (en un teléfono) que se comunican entre sí.

En general, generalmente no desea dividir artificialmente una aplicación en dos, especialmente si es el autor de ambas.

Dicho esto, se puede:

  • tiene aplicación B exponer una una IntentService que será llamada a través de startService() de Aplicación A, con resultados pasa de nuevo a través de un PendingIntent de createPendingResult() o una Messenger o una emisión Intent o un ResultReceiver; o
  • tienen aplicación B exponer una Service con un API definido en AIDL, y tienen aplicación A se unen a ese servicio, y luego tener aplicación A métodos de llamada de Aplicación B, o
  • enviar una difusión Intent de la Solicitud de la A a la Aplicación B , y los resultados se pasan de nuevo por la misma lista de opciones en la primera viñeta anterior, o
  • tener aplicación B implementar un proveedor de contenido, y tienen aplicación a utilizar ContentResolver manipular ese proveedor de contenido
  • y así sucesivamente

Asegúrese de trabajar en todas las ramificaciones de seguridad de lo que está haciendo, ya que está exponiendo una API no solo para su uso en la Aplicación A, sino para cualquier aplicación en el dispositivo, a menos que lo asegure con permisos.

+0

Digamos que tenemos una aplicación que necesita saber si otras 5 aplicaciones tienen un archivo específico en sus datos carpeta. ¿Cuál es el mejor mecanismo para usar de modo que la primera aplicación pueda enviar un mensaje y recibir una cadena de resultados "sí" o un booleano verdadero de la primera aplicación que tenga el archivo? – trusktr

+0

Acerca de la primera opción usando 'ResultReceiver' cuando trato de obtener el receptor de resultados parcelable de la intención en mi segunda aplicación Obtuve:' E/Parcel: Clase no encontrada al desmaterializar: com.myapp.demo.DemoActivity $ 1' ¿Hay alguna parte complicada? ? – L3K0V

+0

@ L3K0V: le recomiendo que haga una pregunta separada sobre desbordamiento de pila, donde puede proporcionar un ejemplo mínimo, completo y verificable de su problema, que incluiría el rastro de pila de Java y el código al que hace referencia el rastro. – CommonsWare

Cuestiones relacionadas