我应该如何使用WiFi Direct共享文件到另一个Android设备? - Salut和LoganSquare

时间:2017-04-17 17:48:49

标签: android android-wifi wifi-direct file-sharing logan-square

**

  

情况是 -

**

  1. 我正在创建一个在Android设备之间共享文件的应用程序。
  2. 我使用Salut作为WiFi Direct Wrapper。
  3. Salut使用LoganSquare在通过WiFi Direct连接的对等设备之间共享数据。
  4.   

    我的目标如何使用WiFi Direct与其他Android设备共享文件

    有些像ShareIt,Superbeam,Xender等......

    (我的项目是创建,处理文件,并通过WiFi将其发送给同行。)

1 个答案:

答案 0 :(得分:2)

好的,对于面临类似问题的开发人员。我想出了答案。

Salut与LoganSquare配合得很好,只是需要将数据序列化以发送到其他设备。要发送文件,我们可以将它们作为类的String字段包含在seralizable类中,因为字符串是可序列化的。

怎么做?

  1. FileOutputStream
  2. 中加载文件
  3. 将其转换为ByteArrayOutputStream
  4. 然后将其转换为字符串
  5. 但我有一个巨大的文件! String的容量是多少?

    不用担心!

    String can store up to (2^31)-1 characters(Integer.MAX_VALUE)

    计算 -

    1. (2 ^ 31)-1 = 2,147,483,648个字符
    2. Assuming Java takes 2 bytes for a character : 2,147,483,648个字符= 2,147,483,648 / 2 = 1,073,741,824字节= 1,048,576 KB = 1024 MB = 1 GB
    3. (或简单1KB = 2 ^ 10字节,1MB = 2 ^ 20字节,1GB = 2 ^ 30字节)

      您要发送超过1 GB的文件吗?

      如果是,您可以使用String []。

      安全问题?

      您可以在发送之前encrypt文件!