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

How should I share Files using WiFi Direct to another android device?? - Salut and LoganSquare

**

SITUATION IS -

**

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

My Objective : How should I share Files using WiFi Direct to another android device??

像 ShareIt、Superbeam、Xender 等。

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

好的,对于面临类似问题的开发者。我找到了答案。

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

怎么做?

  1. 加载 FileOutputStream
  2. 中的文件
  3. 将其转换为 ByteArrayOutputStream
  4. 然后转换为String

但是我有一个巨大的文件! 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

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

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

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

安全问题?

您可以encrypt文件再发送!