我们正在尝试传输文件 iOS <-> Android 或 iOS <-> iOS
实现的逻辑在 Android 中运行良好,但在 iOS 中存在问题
请记住,我们正在测试 iOS 7、alljoyn 3.4.6 和从存储库克隆的最新文件传输组件模块
接收器设置
创建允许设备之间通信的总线附件
注册总线对象
请求总线附件连接将会
话绑定到默认传输(除 wfd 和蓝牙之外的所有传输)
onSessionLost
通知用户错误使用总线附件和会话 ID
onSessionJoined
cancelAdvertiseName
初始化。fileTransferComponent
定义 fileTransferComponent 的默认保存目录setFileCompletedListener
和setFileAnnouncementReceivedListener
After 绑定请求和广告名称。
必要时调用函数busAttachment.enableConcurrentCallbacks()
接收方问题
fileTransferComponent.requestOffer(joiner, filePath)
返回状态正常
UnannouncedFileRequestListener
发件人参与并返回 true
FileAnnouncementReceivedListener
回调应该已被调用但未参与,因此我们无法继续
为什么我们只在 iOS 中遇到这个问题?
如果库本身是罪魁祸首,因为我们怀疑需要在 iOS 库中修复什么才能使其正常工作?
仅供参考,长话短说,事情是这样的:
发送者:通过 doRequestOffer 发送想要发送到接收者的文件
接收者:执行 requestOffer 以请求提供的文件发送者:文件
路径与预期相同?是
的(所以发送者实际上宣布了文件,这是通过库处理的)
接收者:在 FileAnnouncementReceivedListener 我们收到了新的公告
现在接收者有文件 id 等,他执行 requestFile
发送者:你请求了一个文件并且有 RequestDataReceivedListener 响应,发送文件有已经启动
Receiver:知道文件已被 FileCompletedListener 完全接收
Sender:计算发送的字节数并知道文件已发送,但我会通过代理调用要求接收方进行验证