在Android中制作WiFi程序有多种选择,最常见的方法是使用 NSD 和 WifiP2pManager 。
这两个选择有什么不同?
答案 0 :(得分:16)
首先,这些不是要区分的两个实体。即使您使用Wi-Fi P2p进行NSD,也应使用WifiP2pManager进行连接启动和协商。 NSD将用于发现阶段
我认为您的问题是使用 Wi-Fi P2p服务发现(NSD)和不使用(使用正常扫描WifiP2pManager.discoverPeers()
)之间的区别。
在三个子主题下明确提供了答案here。然而
差异实际上处于初始阶段:对等发现阶段
如果您需要仅发现属于您的同伴 兴趣,然后应使用 Wi-Fi P2p服务发现 。在这里, 过滤条件在服务名称中设置。
例如:你的应用程序" XYZ"需求 仅与使用相同应用程序的其他设备组成组 " XYZ",然后你可以创建一个服务并命名它,比如
service_xyz
, 此服务信息将与Wi-Fi Direct一起广播 设备细节。在接收器端,您实现服务侦听器 听取服务" service_xyz" 。通过这样做,只有设备 发现并列出所需的服务名称。对...有用 游戏应用,社交网络应用。
然而,在此阶段之后,在两种方法中,从发现的列表中选择特定设备并启动连接请求。从这里开始,以下阶段是相同的 - 连接请求,协商,组形成......
希望这对你有所帮助。