【问题标题】:Alljoyn file transfer issue when connect with android M device连接android M设备时Alljoyn文件传输问题
【发布时间】:2017-01-04 14:28:01
【问题描述】:

您在尝试发送表单alljoyn 示例演示时无法发送和接收文件。

我已经使用了 16.4 jar.so 文件,由 alljoyn 提供。

这里提供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

【问题讨论】:

    标签: android networking android-ndk file-transfer alljoyn


    【解决方案1】:

    请注意,AllJoyn 文件传输服务应用在 3 年内没有提交过,并标记为旧版/存档。它不活跃。

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

    但是,我在 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 视图。
    • 处理从托管应用程序接收到多个并发 Found Advertisements 时发生重复加入会话处理的情况。这导致可用对等点的 GUI 列表视图显示重复的对等点条目。当应用程序尝试通过会话发送 alljoyn 信号时,还导致“共享文件”随后因 ER_BUS_NO_SUCH_OBJECT 而失败。

    我的 github 存储库(AllJoyn 文件传输服务应用的分支)中提供了这些问题的修复:https://github.com/psigurdson/alljoyn-services-filetransfer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-16
      • 2016-12-28
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2019-03-16
      • 2014-01-21
      • 1970-01-01
      相关资源
      最近更新 更多