【问题标题】:How to transfer Data between Android devices using wifi direct?如何使用 wifi direct 在 Android 设备之间传输数据?
【发布时间】:2014-03-20 04:24:06
【问题描述】:

我需要将字符串值传递给通过 Wifi-Direct 连接的设备..我如何在两个连接的设备之间传递字符串..我正在使用 Wifi-Direct 文件传输示例作为参考。

在 FileServerAsyncTask 的 doInBackground 方法中我正在使用代码

ServerSocket serverSocket = new ServerSocket(8988);
Socket client = serverSocket.accept();                 
PrintWriter out = new PrintWriter(client.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

如何修改 onHandleIntent 方法?对这种实现的任何引用都会有所帮助。谢谢

【问题讨论】:

    标签: wifi-direct


    【解决方案1】:

    在通过 wifi 直接发送数据时,您应该考虑一些事项

    1. 连接后,一台设备将成为群组所有者,另一台设备将成为客户端

    2. 群主拥有固定IP地址,即192.168.49.1

    3. 只有在运行时,您才会知道哪个成为组所有者。

    4. 连接后,您必须从客户端向服务器发送一些数据,其中包含有关其 IP 地址的信息。这样做是因为服务器不知道客户端的 IP 地址。

    5. 这样,您只能发送数据。因为,到这个时候你就会知道哪个设备有哪个 IP 地址了。

    干杯。

    【讨论】:

    • 正如您所提到的,如果主机包含 IP 地址 192.168.49.1,在句柄意图中使用以下代码是否正确? socket.connect((new InetSocketAddress(host, port)), SOCKET_TIMEOUT);输出流流 = socket.getOutputStream();字符串消息 = "你好";字节[] 缓冲区 = message.getBytes(); stream.write(buffer);
    • 可以,但前提是您要向群组所有者发送数据。因为这是群主的IP地址
    • 在 sdk 中为 wifiDirect 给出的示例中,他们使用 onClick og 启动库 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, CHOOSE_FILE_RESULT_CODE); 我应该如何更改它以发送字符串?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多