2

**

情况是——

**

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

我的目标我应该如何使用 WiFi Direct 将文件共享到另一个 android 设备?

有些像 ShareIt、Superbeam、Xender 等。

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

4

1 回答 1

3

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

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

怎么做?

  1. 在FileOutputStream中加载文件
  2. 将其转换为ByteArrayOutputStream
  3. 然后将其转换为字符串

但我有一个巨大的文件!字符串的容量是多少?

不用担心!

字符串最多可以存储 (2^31)-1 个字符(Integer.MAX_VALUE)

计算 -

  1. (2^31)-1 = 2,147,483,648 个字符
  2. 假设 Java 为一个字符占用 2 个字节: 2,147,483,648 个字符 = 2,147,483,648/2 = 1,073,741,824 个字节 = 1,048,576 KB = 1024 MB = 1 GB

(或简单的 1KB = 2^10 字节,1MB = 2^20 字节,1GB = 2^30 字节)

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

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

安全问题?

您可以在发送前加密文件!

于 2017-04-18T11:02:15.980 回答