2017-02-17 30 views

ответ

1

AJ имеет ограничение на полезную нагрузку, поэтому файл необходимо отправить в виде кусков. Вы можете увидеть пример того, как он может быть реализован с использованием сигналов Alljoyn в этом примере C++: https://cgit.allseenalliance.org/core/test.git/tree/scl/bbftp.cc

+0

Спасибо, но мне нужно иметь небольшой образец для Android. –

+0

Пример Android может не существовать, но идея будет такой же: разделить файл на куски и отправить каждый фрагмент в виде отдельного сигнала с сигнатурой «ay» (массив байтов). –

+0

Krystian, Сигнал будет извлечен с борта. Я добавил метод в интерфейс AirPurifier. @BusMethod public void SendSoftwareUpgradeFileWithCurrentIndex (int index, byte [] data) throws BusException; выше метод отображает эти ошибки 1. https://drive.google.com/open? id = 0B7OGoxSpiKCdUTgyZlRyaU9JNWM 2. https://drive.google.com/open?id=0B7OGoxSpiKCdN1RKQi1Bc09BSm8 –

1

Обсуждалось это на других форумах в прошлом. Консенсус, похоже, заключается в том, чтобы куски и отправлять через сигналы AllJoyn.

Существует ява FileTransferModule библиотеки и соответствующее FileTransferSample андроида приложение, которое способствовали AllSeen Альянс несколько лет назад (этот мерзавец репо в архивном состоянии сейчас). Он передает файлы, разбивая их и отправляя куски через сигналы AllJoyn. Проект не был обновлен через некоторое время и не работал на Android 6, поэтому я разблокировал и исправил его. Вы можете найти разветвленную версию на моем github.

Вот ссылка на обновленную библиотеку FileTransferModule:

https://github.com/psigurdson/alljoyn-services-filetransfer/tree/master/Java/FileTransferModule/src/org/alljoyn/cops/filetransfer

Все поддерживаемой функциональности этой библиотеки предназначена быть доступны через класс FileTransferModule. Вот краткое описание ее функциональности от FileTransferModule.java файла комментарий:

Модуль передачи файлов является библиотека, которая предоставляет разработчикам приложений простой структуры они могут использовать для отправки и получения файлов с различными коллегами в рамках их AllJoyn сессии. Этот модуль предназначен для использования с любым существующим приложением AllJoyn с небольшим изменением. Структура предоставляет множество различных функций разработчику приложения, которые включают в себя: объявлять/удалять файлы для одноранговых узлов, запрашивать объявления файлов у других коллег, запрашивать файл по идентификатору файла и по абсолютному пути, отменить/приостановить передачу файла и предоставить файлы указанному всматриваться. Существует также серия слушателей, которые позволяют разработчику получать уведомления на уровне приложения при возникновении различных событий; такие примеры включают в себя: объявление, полученное одноранговым сеансом, передача файла завершена, одноранговая сеть предложила вам файл или получен запрос файла по пути. Слушатели позволяют разработчику отвечать в соответствии с различными событиями. Кроме того, пользователь обладает огромной гибкостью благодаря возможности изменить текущую серию AllJoyn, связанную с File Transfer. Это позволяет пользователям создавать несколько экземпляров модуля передачи файлов и указывать разные сеансы AllJoyn для каждого.

Side Примечание: Там используют, чтобы быть некоторые основные C++ и образцы IOS FileTransfer в AllJoyn Ядра, но они с тех пор были удалены. Если бы вы захотели, вы могли бы вернуться и посмотреть на эти старые ветви релиза AllJoyn, чтобы посмотреть, как их алгоритмы сравниваются.

RB14.06 
alljoyn_core/samples/FileTransfer/ 

RB15.04 
alljoyn_objc/samples/iOS/FileTransferClient/ 
alljoyn_objc/samples/iOS/FileTransferServer/