2010-10-14 9 views

Respuesta

11

Smack < 4.1 no funciona en Android, sobre todo porque faltan API en Android (por ejemplo, la mayoría de las API javax). Esa es la razón por la que nació el entorno de construcción aSmack. Es una forma de modificar Smack para que pueda usarse en Android.

además de muchos pequeños cambios en los mayores cambios son

  1. métodos de autenticación Desactivación XMPP SASL que no son compatibles con Android
  2. Uso de Apache Harmony para SASL en lugar de la API javax

Verificar si para leer el README e iniciar el código relevante antes de realizar cualquier acción relacionada con XMPP.

Más información se puede encontrar @https://github.com/Flowdalic/asmack/wiki/Modifications

+0

si no te importa, ¿puedes dar una razón o algunos detalles sobre por qué esto no sucede? Básicamente Dalvik puede ejecutar código java estándar ¿verdad? –

+0

¡Muchas gracias! No sabía por qué no podía usar Smack ... ¡Gracias! –

+0

Si encuentras esta respuesta útil, entonces considera votatar. – Flow

1

Se puede ver cómo se hacen las cosas en talkmyphone. Creo que están usando Smack con Android.

+0

IIRC TalkMyPhone utiliza el parche bastante viejo justo desde aquí: http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api -for-xmpp/with that diff: http://people.apache.org/~dims/android/smack-android.diff – Flow

5

Como la descripción del proyecto estados, ASmack añade un conjunto de parches para golpear regular. Compruebe esto conversation para más detalles.

Atentamente.

+0

Lo que quería decir es que tengo el código fuente para smack y asmack, pero el código no tiene ninguna diferencia como tal que no debería funcionar en Android. ¿Qué parche o qué cosa deja de ser utilizado en Android y permite que asmack funcione bien en Android? – SPB

1

Modifica Smack para permitir que funcione en Android.

No estoy seguro de cuáles son esos cambios, con la excepción de alterar el mecanismo ProviderManager para que pueda cargar el archivo XML smack.providers de un directorio compatible con Android. De forma predeterminada, Smack carga esto desde su propio directorio de recursos, que no es accesible en Android.

Cuestiones relacionadas