NSD 和 WifiP2pManager 有啥不同?

Posted

技术标签:

【中文标题】NSD 和 WifiP2pManager 有啥不同?【英文标题】:What is different of NSD and WifiP2pManager?NSD 和 WifiP2pManager 有什么不同? 【发布时间】:2015-02-17 09:41:50 【问题描述】:

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

这两种选择有什么不同?

【问题讨论】:

【参考方案1】:

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

我认为您的问题是 Using Wi-Fi P2p Service Discovery(NSD) 和 Not using it(使用普通扫描 WifiP2pManager.discoverPeers())之间的区别。 p>

答案在三个子主题下明确提供here。不过

区别其实在于初始阶段:对等发现阶段

当您不使用 Wi-Fi P2p 服务发现时,您会扫描所有 使用 WiFi 直连活动的设备。扫描结果列表可能包含您不感兴趣的同行。你没办法,因为你没有过滤器。

如果您只需要发现属于您的同行 兴趣,则应使用 Wi-Fi P2p 服务发现。在这里, 过滤条件设置在Service的名称中。

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

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

希望这对您有所帮助。

【讨论】:

以上是关于NSD 和 WifiP2pManager 有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

WifiP2pManager createGroup 和 removeGroup 因忙状态而失败

如何通过 Parcelable 接口将 WifiP2pManager 对象发送到另一个活动

Android WifiP2PManager - 几个问题

Android WifiP2pManager 发现服务超时

无法在 Android 11 (Wi-Fi Direct) 上使用 WifiP2pManager.setDeviceName

WifiP2pManager.requestPeers() 在 onPeersAvailable() 中不断返回旧对等点