Я пытаюсь отправить файл через xmpp и smack
FileTransferManager manager = new FileTransferManager(
this.xmppConnection);
OutgoingFileTransfer transfer = manager
.createOutgoingFileTransfer(this.jid);
transfer.sendFile(file, "test");
while (!transfer.isDone()) {
LOGGER.info("Uploading File: " + file.getName() + " STATUS: "
+ transfer.getStatus() + " >> progress: " + 100
* transfer.getProgress());
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
LOGGER.error("Exception: " + ex);
}
}
LOGGER.info("File transfer is done: " + file.getName() + " STATUS: "
+ transfer.getStatus() + " >> progress: " + 100
* transfer.getProgress());
LOGGER.info("Amount written: " + transfer.getAmountWritten());
LOGGER.info("Bytes sent: " + transfer.getBytesSent());
LOGGER.info("Peer: " + transfer.getPeer());
LOGGER.info("Error: " + transfer.getError());
LOGGER.info("Exception: ", transfer.getException());
Журналы: Загрузка файла: image_P9.png СТАТУС: Начальный >> прогресс: 0.0 Загрузка файла: image_P9.png СТАТУС: Переговорный перевод >> прогресс: 0.0 Передача файла завершена: image_P9.png СТАТУС: Отказано >> прогресс: 0.0 Сумма написано: -1 Bytes отправлено: -1 Peer: [email protected]/IM+ Android Ошибка: null Исключение:
поэтому я не получаю ошибку или исключение. Отправки просто отказано.
Моя цель - отправить встроенный образ любому клиенту android.
СТАТУС: Отказано
...
Peer: [email protected]/IM+
Это означает, что целевой партнер не поддерживает методы передачи файлов, которые вы предлагаете. XMPP SI File Transfer - очень сложная спецификация, которая не реализована простыми клиентами. На самом деле, он также неправильно реализован в Smack, они могут дать вам подробное описание об ошибке, но реализованы только общие "отказались".