Hierfür benötigen Sie 2 Klassen von Smack zu bearbeiten 4,1
- Stanza Klasse in (org.jivesoftware.smack.packet)
- PacketParserUtils Klasse in (org.jivesoftware .smack.util)
1. Stanza Klasse
Definieren Sie Ihre benutzerdefinierte Attribut (nick)
private String nick = null;
definieren Getter und Setter
public String getNick() {
return this.nick;
}
public void setNick(String paramString) {
this.nick = paramString;
}
bearbeiten Stanza Constructor
protected Stanza(Stanza p) {
//add this line
nick = p.getNick();
}
Bearbeiten
addCommonAttributes Methode
protected void addCommonAttributes(XmlStringBuilder xml) {
//add this line
if(getNick()!= null)
xml.optAttribute("nick", getNick());
}
2.PacketParserUtils Klasse
bearbeiten parseMessage Methode
public static Message parseMessage(XmlPullParser parser)
throws XmlPullParserException, IOException, SmackException {
//add this line
message.setNick(parser.getAttributeValue("", "nick"));
}
Jetzt können Sie einfach nick gesetzt und senden Mitteilung als
Message message = new Message();
message.setType(Message.Type.chat);
message.setStanzaId("123");
message.setTo(number);
message.setNick("SHAYAN");
try {
connection.sendStanza(message);
} catch (NotConnectedException e) {
}
Hallo Shanrais !, klonte ich Smack von Github und ich zwei Klassen bearbeitet. Aber, du hast nicht gesagt, wie man smack und jars erneut auf Android mit rechts setzen? –
Anstatt Jars zu erstellen, habe ich den Quellcode des Jars, den ich in meinem Projekt bearbeitet habe, enthalten. – shanraisshan
können Sie sagen, welche Ordner kopiert werden müssen? Habe viele Ordner im Projekt https://github.com/igniterealtime/Smack auf Github, ich weiß nicht, welche Ordner in mein Projekt kopiert werden müssen. Folgende in meiner App deklarierte Dateien: compile 'org.igniterealtime.smack: smack-android-extensions: 4.1.1' kompilieren 'org.ignitorealtime.smack: smack-experimental: 4.1.1' compile 'org.igniterealtime. smack: smack-tcp: 4.1.1 ' –