NSD和WifiP2pManager有什么不同?

ham*_*ata 5 android wifi wifimanager wifi-direct

在android中制作WiFi程序有多种选择,最常见的方法是使用NSDWifiP2pManager.

这两个选择有什么不同?

Har*_*dhi 17

首先,这些不是要区分的两个实体.即使您使用Wi-Fi P2p进行NSD,也应使用WifiP2pManager进行连接启动和协商.NSD将用于发现阶段

我假设您的问题是使用 Wi-Fi P2p服务发现(NSD)和不使用它(使用正常扫描WifiP2pManager.discoverPeers())之间的区别.

答案是明确规定在这里下的三个子议题.然而

差异实际上是在初始阶段:对等发现阶段

  • 如果不使用Wi-Fi P2p服务发现,则会扫描所有使用WiFi直接激活的设备.扫描结果列表可能包含您不感兴趣的对等项.你无法帮助它,因为你没有过滤器.
  • 如果您只需要发现您感兴趣的对等方,则应使用Wi-Fi P2p服务发现.这里,过滤条件在服务名称中设置.

    例如:您的应用程序"XYZ"需要与仅使用相同应用程序"XYZ"的其他设备组成组,然后您可以创建服务并命名,例如service_xyz,此服务信息将与Wi-一起广播Fi Direct设备详细信息.在接收器端,您实现了一个侦听服务"service_xyz"的服务侦听器.通过这样做,仅发现并列出具有所需服务名称的设备.适用于游戏应用,社交网络应用.

但是,在此阶段之后,在两种方法中,从发现的列表中选择特定设备并启动连接请求.从这里开始,以下阶段是相同的 - 连接请求,协商,组形成......

希望这能帮助你.