Wifi Direct技术简介

Wi-Fi Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。与 蓝牙技术类似,这种标准允许无线设备以点对点形式互连,不过在传输速度与传输距离方面 则比蓝牙有大幅提升。

Wi-Fi Direct技术特点

移动性与便携性:Wi-Fi Direct设备能够随时随地实现互相连接。由于不需要Wi-Fi 路由器或接入点,因此Wi-Fi设备可以在任何地点实现连接。

即时可用性:用户将得以利用带回家的第一部Wi-Fi Direct认证设备建立直接连接。 例如,一部新购买的Wi-Fi Direct笔记本可以与用户已有的传统Wi-Fi设备创建直接连接。

易用性:Wi-Fi Direct设备发现(Device Discovery )与服务发现(Service Discovery)功能帮助用户确定可用的设备与服务,然后建立连接。例如,如果用户想要打 印文件,他们可以通过上述服务了解到哪个Wi-Fi网络拥有打印机。

简单而安全的连接:Wi-Fi Direct设备采用Wi-Fi Protected Setup™简化了在设备 之间创建安全连接的过程。用户可以按下任一设备上的按钮,也可以输入PIN码(即设备显 示的PIN码),轻松创建安全连接。

 

Wi-Fi Direct 主要优点:传输速率高,兼容原有设备。

Wi-Fi Direct 主要缺点:耗电量高(较之蓝牙)。

 

Android P2P源码学习

①:WifiP2pSettings Wi Fi P2P设置

 

方法

解释

mReceiver

处理接收到的各种Action方法:
WIFI_P2P_PEERS_CHANGED_ACTION:调用requestPeers;
WIFI_P2P_CONNECTION_CHANGED_ACTION:获得NetworkInfo,判断是否为连接状态;
WIFI_P2P_THIS_DEVICE_CHANGED_ACTION:调用updateDevicePref

onCreate

创建时调用

获得系统服务WifiP2pManager和 WifiP2pManager.Channel; mConnectListener/mDisconnectListener 为 wifiP2pDialog 设置 Listener; setHasOptionsMenu(true)设置操作菜单

onResume()

注册 mReceiver; discoverPeers()探索附近设备

onPause()

注销 mReceiver;

onOptionsItemSelected

menu事件响应:
MENU_ID_SEARCH:discoverPeers()探索附近设备;
MENU_ID_CREATE_GROUP:createGroup()创建群组;
MENU_ID_REMOVE_GROUP:removeGroup()移除群组;
MENU_ID_ADVANCED: 未处理;

onPreferenceTreeClick

点击一个设备,根据设备状态弹出相关对话框

updateDevicePref

更新设备属性
首先设置device的配置信息,然后调用
onPeersAvailable()方法更新UI

onPeersAvailable

更新UI

 

 

WifiP2pDialog方法

解释

getConfig()

获得P2P配置信息,获得device地址和 wps

onCreate

创建时候调用,设置device的address和name等信息。

 

 

 

WifiP2pEnabler

方法

理解

mReceiver

处理接收到的各种Action方法:
WIFI_P2P_STATE_CHANGED_ACTION:调用方法
handleP2pStateChanged()进行处理

handleP2pStateChanged

根据状态设置checkbox的属性值

onPreferenceChange

根据checkbox的属性变化,开启/关闭wifi p2p

resume/pause

注册/注销mReceiver,设置/取消checkbox的Listener

 

 

 

 

WifiP2pPeer

方法

理解

onBindView

设置基本配置信息(名称,地址,rssi和信号量的图片),调
用refresh()设置summary

compareTo

比较某device是否和本地的device相同

getLevel

获得信号等级