嗨,当我尝试发送表单alljoyn示例演示时,我无法发送和接收文件。

我已经使用了由jar提供的16.4 .soalljoyn文件。

提供jar.so
https://github.com/onbiron/AllJoyn

尝试加入会话时出现此类错误。

12-19 17:42:04.371 14705-14823/org.alljoyn.cops.filetransfer.sampleapp E/PERMISSION_MGR:    1.906 ****** ERROR PERMISSION_MGR lepDisp2_0 ...ndroid/PermissionDB.cc:182 | Failed to open /data/system/packages.xml: ER_FAIL
12-19 17:42:35.739 14705-14867/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ:   33.275 ****** ERROR ALLJOYN_OBJ JoinS-2       .../router/AllJoynObj.cc:2870 | SendAttachSession failed: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:35.739 14705-14865/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ:   33.275 ****** ERROR ALLJOYN_OBJ JoinS-1       .../router/AllJoynObj.cc:2870 | SendAttachSession failed: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:35.744 14705-14867/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ:   33.280 ****** ERROR ALLJOYN_OBJ JoinS-2       .../router/AllJoynObj.cc:1110 | Failed to attach session 3934278432 to :LL5lO2PF.2: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:35.744 14705-14865/org.alljoyn.cops.filetransfer.sampleapp E/ALLJOYN_OBJ:   33.280 ****** ERROR ALLJOYN_OBJ JoinS-1       .../router/AllJoynObj.cc:1110 | Failed to attach session 3934278432 to :LL5lO2PF.2: ER_BUS_REPLY_IS_ERROR_MESSAGE
12-19 17:42:36.206 14705-17188/org.alljoyn.cops.filetransfer.sampleapp E/LOCAL_TRANSPORT:   33.742 ****** ERROR LOCAL_TRANSPORT lepDisp2_0 ...src/LocalTransport.cc:597 | LocalEndpoint::DoPushMessage failed: ER_BUS_UNMATCHED_REPLY_SERIAL
12-19 17:42:36.209 14705-17225/org.alljoyn.cops.filetransfer.sampleapp E/LOCAL_TRANSPORT:   33.745 ****** ERROR LOCAL_TRANSPORT lepDisp2_1 ...src/LocalTransport.cc:597 | LocalEndpoint::DoPushMessage failed: ER_BUS_UNMATCHED_REPLY_SERIAL
12-19 17:42:37.869 14705-14747/org.alljoyn.cops.filetransfer.sampleapp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9327058
12-19 17:42:39.866 14705-14747/org.alljoyn.cops.filetransfer.sampleapp E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb944b690

最佳答案

请注意,AllJoyn File Transfer服务应用程序3年未提交任何内容,并且被标记为Legacy / archive。它不活跃。

您提到的问题似乎是加入请求期间的超时。对于我来说,这不是一个大问题(仅几天就看到了一次,解决方法是简单地重试加入该会话,然后成功了)。我相信,当网络中出现拥塞/延迟时,这种超时很少会发生。

但是,在Android 6.0上运行该应用程序时,我确实遇到了其他一些问题,这阻止了文件传输。这些包括:


无法从设备读取/写入文件。即使它们已经在清单中,也需要在运行时请求读/写权限。从Android 6.0及更高版本(API级别23+)开始,这似乎是必需的。见https://stackoverflow.com/a/38989237/7281796
该应用程序使用/ mnt / sdcard的硬编码保存目录路径。在运行6.0.1的Nexus 5上不存在此路径。需要使用Environment.getExternalStorageDirectory()绝对路径,而不是使用硬编码路径。
重新启动两个应用程序之一将导致对等体之间的文件传输不再起作用(除非另一个应用程序也已重新启动)。需要使用SessionListener来释放连接对象,并在收到丢失的会话后重置GUI视图。
处理从托管应用接收到多个并发的“发现广告”时发生重复的联接会话处理的情况。这导致可用对等方的GUI列表视图显示重复的对等项。当应用尝试通过会话发送alljoyn信号时,还会由于ER_BUS_NO_SUCH_OBJECT而导致“共享文件”随后失败。


这些问题的修复程序可以在我的github存储库(AllJoyn File Transfer服务应用程序的叉子)中找到:https://github.com/psigurdson/alljoyn-services-filetransfer

关于android - 与Android M设备连接时Alljoyn文件传输问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41222560/

10-09 04:57