1

私は答えが示唆したことを正確に行いました(Asmack not loading VCard)が、それでも機能しません。DEBUG 出力は、Smack が VCard 情報を含むパケットを受信したものの、 https://github.com/rtreffer/smack/blob/master/source/org/jivesoftware/smackx/packet/VCard.java#L548で ClassCastException をスローしたことを示しています。そして、「xxx@xxx の VCard がありません」というメッセージしか表示されません。

私のコード:

public VCard getUserVCard() throws XMPPException {
    VCard userVCard = new VCard();
    userVCard.load(connection);
    return userVCard;
}

そして、いくつかの以前の初期化:

ConnectionConfiguration config = new ConnectionConfiguration(OF_HOST, OF_PORT, OF_SERVICE_NAME);
config.setDebuggerEnabled(true);
    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
ProviderManager.getInstance().addIQProvider("vCard ", "vcard-temp", new org.jivesoftware.smackx.provider.VCardProvider());
connection = new XMPPConnection(config);
this.context = context;
try {
    connection.connect();
} catch (XMPPException e) {
    // TODO Auto-generated catch block
        e.printStackTrace();
}

データベース内の VCard 情報は問題ありません。最終的なキャストのみが失敗します。助言がありますか?

4

1 に答える 1

0

私は最終的に、VCardProvider を追加するだけでなく、この投稿に続く構成の 9 ヤード全体で getSearchForm を追加することにました。

于 2012-02-16T11:21:25.343 に答える