Wi-Fi P2P从Linux到Android

4
我想使用编程方式从运行Linux(客户端)的具有Wi-Fi访问权限的Raspberry Pi,将文件传输到Android手机(主机)。我正在使用此链接作为设置Android P2P连接的指南,但是我找不到在非Android设备上处理客户端的任何参考资料。我知道可以使用此链接提供如何将客户端连接到主机的文档,但我没有了解如何使用它实际发送文件的线索。
基本上,我想知道的是:在Linux上是否有任何可以使我达到与Android文档相同效果的方法?我是完全误导了吗?
/**
 * Create a client socket with the host,
 * port, and timeout information.
 */
socket.bind(null);
socket.connect((new InetSocketAddress(host, port)), 500);

/**
 * Create a byte stream from a JPEG file and pipe it to the output stream
 * of the socket. This data is retrieved by the server device.
 */
OutputStream outputStream = socket.getOutputStream();
ContentResolver cr = context.getContentResolver();
InputStream inputStream = null;
inputStream = cr.openInputStream(Uri.parse("path/to/picture.jpg"));
while ((len = inputStream.read(buf)) != -1) {
    outputStream.write(buf, 0, len);
}
outputStream.close();
inputStream.close();

编辑:也许是我太困了,但如果设备已连接,是否有一种类似于这样的简单处理方式? Android文档指出它支持UPnP和Bonjour作为服务,如果可以提供任何方向,请告诉我。如果可以,当传输较大的文件(最大5GB)时,我应该注意什么?如果这与问题无关,我道歉。

编辑2:建立连接的解决方案在wpa_cli中,具体命令包括p2p_find用于发现,p2p_peers用于查看发现的设备,以及p2p_connect <MAC_of_peer> pbc go_intent=0停止搜索并连接到Android主机。您可以在ip a中将其显示为本地网络。但是,现在我在Android端遇到了问题,在这个问题中继续探索。


我相信这是可能的。例如,可以在Google上搜索“Raspberry Pi Wifi Direct”,如下链接:https://raspberrypi.stackexchange.com/questions/45451/connect-to-raspberry-pi-3-over-wi-fi-direct - FoggyDay
我很感激你的发现,但是几乎每个我找到的例子都有同样的问题。这些指令只能建立连接,而我想要发送数据。 - Damino
1个回答

3

建立连接的解决方案在wpa_cli中特别是使用命令p2p_find来发现连接,p2p_peers以查看搜索到的设备和p2p_connect <MAC_of_peer> pbc go_intent=0停止搜索并连接Android主机。您可以使用ip a命令看到它显示为本地网络。但是,现在我在Android端似乎出现了问题,如有兴趣,请参见此问题进行更多探讨。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接