asmack-android-17-0.8.3
私のAndroidプロジェクトに使用しています。
asmack ソースをプロジェクトにコピーし、次のように ConfigureProviderManager クラスにカスタム IQ プロバイダーを追加しました。
other extensions and IQ providers...
// XEP-184 Message Delivery Receipts
pm.addExtensionProvider("received", "urn:xmpp:receipts", new DeliveryReceipt.Provider());
pm.addExtensionProvider("request", "urn:xmpp:receipts", new DeliveryReceipt.Provider());
// XEP-0115 Entity Capabilities
pm.addExtensionProvider("c", "http://jabber.org/protocol/caps", new CapsExtensionProvider());
// XEP-0136
pm.addIQProvider("list", "urn:xmpp:archive", new ListIQProvider());
ご覧のとおり、最も重要な点として、XEP-0136 でのアーカイブをサポートするために IQProvider を追加しました!
これを追加すると、アーカイブされたチャット データを iq プロバイダーに取得できますが、残念ながら同時に、クライアントが ChatManager を介して新しいチャットを受信できなくなります。
これはまだ asmack のバグですか? カスタム iqprovider を追加する最良の方法は何ですか? これを解決する方法を教えてください。ありがとう!