Android Wi-Fi Direct在连接前发送数据

时间:2016-03-02 19:00:47

标签: android android-wifi wifi-direct service-discovery wifip2p

我正在开发一款使用Wi-Fi直连连接设备的应用。我在这里阅读了如何连接,发送数据和断开设备的连接:http://developer.android.com/guide/topics/connectivity/wifip2p.html。现在,我想在连接之前发送一些数据,以显示有关设备的一些信息。我用谷歌搜索了这个,但我发现的唯一答案是:Sending data in Android WiFi Direct service discovery instead of connecting,它使用服务发现。

有没有办法在配对过程之前发送数据而不使用服务发现?如果我不能,您能解释一下服务发现和普通Wi-Fi P2P之间的区别吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

除非您有其他可以依赖的媒介(例如,您可以使用某种后端来交换信息),否则您需要Service Discovery

我已经就WifiP2pService Discovery写了几个答案,我建议你先看看它们。最后一个应该对你最感兴趣。

  1. Why is discovering peers for Android WifiDirect so unreliable
  2. Wi-fi P2P. Inform all peers available of some event
  3. Wifi P2P service discovery works intermittently
  4. 要回答关于WifiP2pServiceDiscovery之间差异的问题,请允许我使用一个小类比:

      

    想象一下,你在机场,你刚刚降落在外国   国家。你离开了免税区,你看到了所有的人   正在等待已经降落在机场的人们   你做到了。你需要找到你的出租车司机。你知道他应该   等着你,带着你的名字的一小张纸。您   可以看到很多这样的人,他们每个人都拿着一个   一张纸上面有一个名字。你需要阅读很多内容   他们直到找到你的那个。但你不必谈谈   所有这些人。你只会跟你的出租车司机说话,你会的   可能告诉的不仅仅是你的名字。

    现在让我解释一下......拿着一张纸的每个人都代表Broadcasted Service。每个broadcasted service都可以携带一小段信息(一个人名)。信息的空间非常有限(你不能在纸上写得太多),而且相对永久的#34; (需要一点时间来改变它)。当您搜索合适的人时,您正在执行Service Discovery。您没有必要与所有人交谈以阅读这些文章上的名字 - 您没有必须连接到它们(WiFiP2p智能)。当你找到你感兴趣的那个时,你和那个人交谈了 - 你建立了一个WiFiP2p连接。现在,您可以根据需要与他交谈 - 您可以通过连接传递尽可能多的数据。