我正在嘗試使用asmack jar接收文件。我能夠在我的android設備上接收文本,沒有問題,但是當我設置文件傳輸時,我收到一條錯誤消息,說「不支持文件傳輸」。監聽器永遠不會被調用。我建立了我的聽衆是這樣的:使用asmack在Android中接收文件
if (m_connection != null)
{
ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection);
if (sdm == null)
{
sdm = new ServiceDiscoveryManager(connection);
sdm.addFeature("http://jabber.org/protocol/disco#info");
sdm.addFeature("jabber:iq:privacy");
}
// new ServiceDiscoveryManager(connection);
FileTransferNegotiator.setServiceEnabled(connection, true);
FileTransferManager manager = new FileTransferManager(m_connection);
manager.addFileTransferListener(new FileTransferListener() {
public void fileTransferRequest(final FileTransferRequest request)
{
Log.i("InstallerActivity", "Got new File!!!");
編輯:添加這些,使其工作:
pm.addIQProvider("si", "http://jabber.org/protocol/si", new StreamInitiationProvider());
pm.addIQProvider("query", "http://jabber.org/protocol/bytestreams", new BytestreamsProvider());
pm.addIQProvider("open", "http://jabber.org/protocol/ibb", new IBBProviders.Open());
pm.addIQProvider("close", "http://jabber.org/protocol/ibb", new IBBProviders.Close());
pm.addExtensionProvider("data", "http://jabber.org/protocol/ibb", new IBBProviders.Data());
pm.addIQProvider("open", "http://jabber.org/protocol/ibb", new OpenIQProvider());
pm.addIQProvider("data", "http://jabber.org/protocol/ibb", new DataPacketProvider());
pm.addIQProvider("close", "http://jabber.org/protocol/ibb", new CloseIQProvider());
pm.addExtensionProvider("data", "http://jabber.org/protocol/ibb", new DataPacketProvider());
我已經在使用此解決方案,但仍面臨着這個問題。你能幫助解決這個問題嗎? –