NSD 和 WifiP2pManager 有啥不同?
Posted
技术标签:
【中文标题】NSD 和 WifiP2pManager 有啥不同?【英文标题】:What is different of NSD and WifiP2pManager?NSD 和 WifiP2pManager 有什么不同? 【发布时间】:2015-02-17 09:41:50 【问题描述】:在android中制作WiFi程序有多种选择,最常用的方法是使用NSD和WifiP2pManager。
这两种选择有什么不同?
【问题讨论】:
【参考方案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 11 (Wi-Fi Direct) 上使用 WifiP2pManager.setDeviceName
WifiP2pManager.requestPeers() 在 onPeersAvailable() 中不断返回旧对等点