我应该如何使用 WiFi Direct 将文件共享到另一个 android 设备? - Salut 和 LoganSquare
How should I share Files using WiFi Direct to another android device?? - Salut and LoganSquare
**
SITUATION IS -
**
- 我正在创建一个在 android 台设备之间共享文件的应用程序。
- 我使用 Salut 作为 WiFi Direct Wrapper。
- 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 的字符串字段,因为字符串是可序列化的。
怎么做?
- 加载 FileOutputStream
中的文件
- 将其转换为 ByteArrayOutputStream
- 然后转换为String
但是我有一个巨大的文件! String 的容量是多少?
不用担心!
String can store up to (2^31)-1 characters (Integer.MAX_VALUE)
计算 -
- (2^31)-1 = 2,147,483,648 个字符
- 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文件再发送!
**
SITUATION IS -
**
- 我正在创建一个在 android 台设备之间共享文件的应用程序。
- 我使用 Salut 作为 WiFi Direct Wrapper。
- 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 的字符串字段,因为字符串是可序列化的。
怎么做?
- 加载 FileOutputStream 中的文件
- 将其转换为 ByteArrayOutputStream
- 然后转换为String
但是我有一个巨大的文件! String 的容量是多少?
不用担心!
String can store up to (2^31)-1 characters (Integer.MAX_VALUE)
计算 -
- (2^31)-1 = 2,147,483,648 个字符
- 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文件再发送!