2010-10-14 9 views

Antwort

11

Smack < 4.1 funktioniert nicht auf Android, vor allem wegen APIs fehlt auf Android (z. B. die meisten der javax APIs). Aus diesem Grund wurde die Build-Umgebung von aSmack geboren. Es ist eine Möglichkeit Smack so zu modifizieren, dass es auf Android verwendet werden kann.

Neben vielen kleineren Änderungen die größten Veränderungen

  1. Deaktivieren XMPP SASL Auth Methoden sind, die nicht auf Android unterstützt werden
  2. mit Apache Harmonie für SASL anstelle der javax API

Stellen Sie sicher, Lesen Sie die README und und starten Sie den entsprechenden Code, bevor Sie XMPP-bezogene Aktionen ausführen.

Weitere Informationen hierzu finden @https://github.com/Flowdalic/asmack/wiki/Modifications

+0

Wenn es Ihnen nichts ausmacht, können Sie einen Grund oder einige Details angeben, warum dies nicht geschieht? Grundsätzlich kann Dalvik Standard-Java-Code richtig ausführen? –

+0

Vielen Dank! Ich wusste nicht warum ich Smack nicht benutzen konnte ... Danke! –

+0

Wenn Sie diese Antwort hilfreich finden, überlegen Sie bitte, upvoting. – Flow

1

Sie können sehen, wie die Dinge in talkmyphone getan werden. Ich denke, sie benutzen Smack mit Android.

+0

IIRC talkmyphone die ziemlich alt verwendet von hier Klaps Patch zu finden: http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api -for-xmpp/mit diesem Unterschied: http://people.apache.org/~dims/android/smack-android.diff – Flow

5

Wie die Projektbeschreibung angibt, fügt ASmack eine Reihe von Patches zu regulärem Smack hinzu. Überprüfen Sie diese conversation für weitere Details.

Grüße.

+0

Was ich sagen wollte, ist, dass ich den Quellcode für beide smack und asmack, aber den Code habe Es hat keinen Unterschied als solche, dass Smack nicht auf Android funktionieren sollte. Welcher Patch oder welche Sache hört auf, auf Android verwendet zu werden und ermöglicht asmack, auf Android gut zu arbeiten? – SPB

1

Es ändert Smack, damit es unter Android funktioniert.

Ich bin mir nicht sicher, was diese Änderungen sind, mit der Ausnahme, dass der ProviderManager-Mechanismus so geändert wird, dass er die smack.providers-XML-Datei aus einem Android-freundlichen Verzeichnis laden kann. Standardmäßig lädt Smack dies aus seinem eigenen Ressourcenverzeichnis, das in Android nicht erreichbar ist.