`

wifi p2p owner的确定

 
阅读更多
原文引自: http://www.bubuko.com/infodetail-958689.html

P2P架构中定义了三个组件,一个设备,两种角色。这三个组件分别是:

    P2P Device:它是P2P架构中角色的实体,读者可把它当做一个Wi-Fi设备。
    P2P Group Owner(GO):P2P网络建立时会产生一个Group。
    P2P Group Client(GC):

    在组建P2P Group(即P2P Network)之前,智能终端都是一个一个的P2P Device。
    当这些P2P Device设备之间完成P2P协商后,那么其中将有一个并且只能有一个Device来扮演GO的角色,而其他Device来扮演GC的角色。

最终构成的这个P2P Group组织结构如图所示:

技术分享

P2P Group示意图

如图展示了一个典型P2P Group的构成,其中:

一个P2P Group中只能有一个GO。一个GO可以支持1个或多个(即图中的1:n)GC连接。

    由于GO的功能类似于AP,所以周围那些不支持P2P功能的WIFI STA也能发现并关联到GO。这些WIFI STA被称之为Legacy Clients。

注意:“不支持P2P功能”更准确的定义是指不能处理P2P协议。在P2P网络中,GO等同于AP,所以Legacy Clients也能搜索到GO并关联上它。不过,由于Legacy Clients不能处理P2P协议,所以P2P一些特有功能在这些Legacy Clients中无法实现。




Wifi_Direct的大致配对流程如下:
        a. WifiP2pManager.discoverPeers()开始扫描设备
        b. 获取扫描到的设备,选择其中一个设备进行连接配对WifiP2pManager.connect
        c. 配对成功后,根据WifiP2pInfo.isGroupOwner和WifiP2pInfo.groupOwnerAddress进行连接。

        流程图如下:
技术分享




常见的问题
问题1:WifiP2pManger.connect()时,如何确定谁是GO,谁是GC

答:调用WifiP2pManger.connect()进行连接时,GO还算GC的身份是随机的。开发者无法决定GroupOwner是哪台设备,但是可以通过WifiP2pConfig.groupOwnerIntent参数进行建议。


问题2:如果一定要确定谁是GO,谁是GC,怎么办

答:第一步:GO端先调用WifiP2pManger.createGroup

第二步:GO端或者GC端调用WifiP2pManger.connect

即:先建立Group,再连接


问题3:如何断开连接

答:WifiP2pManger.removeGroup

注意:WifiP2pManger.removeGroup是移除Group,断开连接。WifiP2pManger.cancelConnect()断开一个connecting的连接,即断开当前状态是Invited的连接。


问题4: 我们已知配对成功的前提条件是:进行配对的两台设备都必须能够扫描到对方。那么如何保证本机一直处于搜索状态呢?

答:经过测试得知,一般情况下,本机Scan一次,能够保持在线状态3分钟,即能够搜索到其他设备/被其他设备搜索到的时间一般是3分钟。但是这个3分钟不是非常准确的,这跟手机性能或者WIFI芯片都有很大关系。因此我们能做的方案就是如果搜索结束,就重启一次搜索。

对于一般的Peer Discovery而言,如果搜索结束,会收到广播WifiP2pManager.WIFI_P2P_DISCOVERY_CHANGED_ACTION,这样再收到广播后重新搜索就可以。

对于Service Discovery而言(这其实是使用最广泛的),搜索结束后,系统不会发出广播通知,这样就给开发者带来一个难题:你无法知晓当前是否处于搜索(可见)状态。

目前比较可行的做法是:每隔3分钟(或者更短)重启一次搜索,这样基本保证本机一直处于搜索状态。但是这仅能覆盖大多数的情况,建议再此基础上再加入手动搜索(搜不到可以让用户手动搜索)保证当前的可见状态。

目前wifip2p依然不是很稳定,从测试的结果来说,Wifi_Direct的表现受具体设备的影响很大,配对的速度也有较大差异,从10秒到2分钟甚至更久。有可能出现

a.A机器处于搜索(可见)状态,但是B机器依然搜索不到;

b.还有可能出现A机器处于搜索(可见)状态,B机器也搜索到了,但是连接失败(此情况的主要原因还是因为A机器搜索结束后系统不发通知,而B机器当前搜索到的A机器是之前A机器的状态)
分享到:
评论

相关推荐

    wifi p2p直连,Google官方demo

    WiFi P2P(Wi-Fi Direct)技术是一种无线通信协议,允许设备之间直接建立连接,而无需通过传统的Wi-Fi接入点或路由器。这个“WiFi p2p直连,Google官方demo”是一个示例程序,用于展示如何在Android平台上利用Google...

    Android官方Wifi P2P Demo

    **Android官方Wifi P2P Demo详解** Android的Wi-Fi Direct(也称为Wi-Fi Peer-to-Peer或P2P)是一项技术,允许设备之间直接建立高速、低延迟的无线连接,无需通过传统的Wi-Fi接入点。这项功能使得Android设备能够...

    wifi直连,WiFi p2p 转发 源码+apk

    WiFi Direct,又称为WIFI P2P,是一种允许设备之间无需通过无线路由器直接建立连接的技术。这项技术在Android系统中得到了广泛的应用,使得Android设备能够快速、便捷地进行数据传输、设备配对和共享资源。在Android...

    Wifi p2p.zip

    WiFi Direct,也称为Wi-Fi P2P,是一种无线通信技术,允许设备之间直接建立连接,进行数据传输,而无需通过传统的Wi-Fi接入点或路由器。这个技术在Android平台上被广泛应用于设备之间的快速文件共享、打印服务、游戏...

    Wifi p2p 直连官方demo

    这个"WiFi p2p 直连官方demo"是Google为开发者提供的一个示例项目,帮助他们理解并实现WiFi Direct功能。在Eclipse环境中,开发者可以使用这个demo来学习如何在Android 4.0(API级别14)及以上版本的设备上构建类似...

    WIFI P2P Spec V1.14 (Draft)

    This is the technique spec for wifi p2p v1.14 or wifi-direct.

    wifi p2p specification

    Wi-Fi直连(P2P)技术规范是Wi-Fi联盟制定的一套标准,旨在提供一种标准化的无线设备之间直接连接的方式。P2P技术规范允许各种Wi-Fi设备在没有传统无线接入点(AP)的情况下,直接相互通信和共享资源。这一技术允许...

    WIFI P2P v1.7中文版.docx

    "Wi-Fi P2P v1.7中文版" Wi-Fi P2P(Peer to Peer)是一种无线网络技术,允许设备之间直接进行通信, 无需通过接入点(AP)。 Wi-Fi P2P技术可以在不需要internet连接的情况下实现设备之间的通信,是一种点对点的连接...

    wifi_p2p分析

    2. **P2P Group Owner (GO)**:相当于传统Wi-Fi网络中的AP角色,负责管理组内通信,控制数据流。GO能够与支持P2P的设备以及其他不支持P2P的传统STA(Station)进行通信。 3. **P2P Client**:类似于传统Wi-Fi网络中...

    wifi p2p driect 介绍

    一旦检测到对方设备,便可以通过协商确定是否建立连接。这一过程通常非常迅速且自动化程度高。 3. **P2P组操作**:一旦建立了连接,就可以形成一个临时的“组”。在这个组内,一个设备将扮演“群组所有者”的角色,...

    Android 通过wifi进行p2p通讯和文件传送

    在Android平台上实现通过WiFi进行P2P(点对点)通信和文件传输是一项技术含量较高的任务,尤其适用于局域网内的聊天应用或游戏开发。在Android 4.0及以上版本,系统引入了Wi-Fi Direct功能,使得设备可以直接连接,...

    wifi p2p demo

    这个“WiFi P2P Demo”是针对安卓平台的一个示例应用,展示了如何利用Android系统内置的WiFi Direct API来实现设备间的直接通信。 在Android系统中,WiFi P2P(也称为Wi-Fi Direct)被设计用于创建临时的、点对点的...

    WiFi_P2P_Technical_Specification_v1.2.pdf

    Wi-Fi联盟技术委员会P2P工作组发布了《Wi-Fi Peer-to-Peer (P2P) 技术规范v1.2》文件,这是一份关于Wi-Fi P2P技术的详细技术规格文档。P2P(Peer-to-Peer)技术,即点对点技术,是一种网络通信技术,它允许无线设备...

    wifi_p2p_technical_specification_v1.1.pdf

    - **组形成**:两个或多个设备可以通过协商确定哪个设备成为组所有者,其余设备作为客户端加入。 - **动态网络配置**:组所有者可以动态地配置网络参数,如IP地址分配。 - **安全性**:采用了多种安全机制,确保设备...

    WiFi 直连 WiFi Direct / WiFi P2P

    WiFi Direct,也称为WiFi P2P,是一种无线通信技术,允许设备之间直接建立连接,而无需通过传统的WiFi接入点或路由器。这项技术极大地简化了设备间的直连通信,尤其适用于移动设备,如智能手机、平板电脑和笔记本...

    WiFi_P2P_Technical_Specification_v1.2

    《WiFi_P2P_Technical_Specification_v1.2》是一份由WiFi联盟发布的技术规范文档,详细阐述了WiFi Peer-to-Peer(P2P)通信的技术规格与实现方法。这份文档对于理解并应用WiFi P2P技术至关重要,尤其是在物联网、...

    WiFi P2P Technical Specification Draft v1.03

    ### WiFi P2P 技术规范草案 v1.03 关键知识点解析 #### 一、简介 **WiFi P2P技术规范草案 v1.03** 是由WiFi联盟(Wi-Fi Alliance)发布的一份重要文档,旨在为设备制造商提供关于如何实现设备间对等连接的技术指导...

    wifi直连关键技术p2p 介绍和技术细节

    在`WiFi+P2P+Technical+Specification+Draft+v1.03.pdf`中,会详细阐述Wi-Fi Direct的技术规范,包括设备能力的表示、设备发现和组形成的具体步骤、连接参数协商、以及如何处理多设备连接和资源管理等。这些规格定义...

    WifiP2P.zip

    **WiFi P2P技术详解** 在移动设备的通信领域,WiFi P2P(WiFi Peer-to-Peer)技术,也称为WiFi Direct,是一种允许设备之间直接建立连接,进行高速数据传输的技术,无需通过传统的WiFi接入点(如路由器)。这种技术...

    深入理解Wi-Fi-P2P

    3. **组形成**:一旦发现合适的设备,它们可以协商成为Group Owner(GO)或P2P Client。GO负责分配IP地址、管理组内的连接,并可能提供Internet访问(如果配置了互联网桥接)。 4. **连接建立**:P2P Clients连接到...

Global site tag (gtag.js) - Google Analytics