3.2.Wifi Direct的扫描
P2P的扫描还是从WifiP2psettings开始,当用户单击“SEARCH”按钮搜索P2P设备。该按钮对应的函数是WifiP2pSettings的startSearch()函数。
private void startSearch() { if (mWifiP2pManager != null && !mWifiP2pSearching) { mWifiP2pManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() { ........... }); } } |
startSearch()函数调用WifiManager的discoverPeers搜索周围的P2P设备。discoverPeers()函数主要的工作是发布DISCOVER_PEERS消息,由WifiP2pService的P2pEnabledState函数处理。
下面来看下WifiP2pService中discoverPeers处理流程。
class P2pEnabledState extends State { .............. public boolean processMessage(Message message) { if (DBG) logd(getName() + message.toString()); switch (message.wh |