当前位置: 首页 > news >正文

做网站建设需要什么资质google代理

做网站建设需要什么资质,google代理,网站建设126,wordpress利用视频引流wifi 连接&获取IP 流程图 代码流程分析 一、关联阶段 1. WifiSettings.submit – > WifiManager WifiSettings 干的事情比较简单,当在dialog完成ssid 以及密码填充后,直接call WifiManager save 即可WifiManager 收到Save 之后,就开…

wifi 连接&获取IP 流程图

代码流程分析

一、关联阶段

1. WifiSettings.submit – > WifiManager

  • WifiSettings 干的事情比较简单,当在dialog完成ssid 以及密码填充后,直接call WifiManager save 即可
  • WifiManager 收到Save 之后,就开始了wifi 连接之旅
packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java
void submit(WifiConfigController configController){... mWifiManager.save(config, mSaveListener);
}

2. WifiSettings.submit – > WifiManager

  • WifiManager 这里相当于传达室,信件到了,然后按个铃铛,把信息传达给WifiSerivceImpl
  • 主要是将SAVE_NETWORK 给到 WifiService(WifiServiceImpl 是真正干活的)
frameworks/base/wifi/java/android/net/wifi/WifiManager.java
public void save(WifiConfiguration config, ActionListener listener) {getChannel().sendMessage(SAVE_NETWORK, 0, putListener(listener), config);
}

3. WifiServiceImpl --> WifiStateMachine

  • WifiServiceImpl又将 SAVE_NETWORK 送到中级cmd处理站: WifiStateMachine
  • 这里扩展一下,如我们的移除热点(其实也通过Settings 将remove cmd 送到WifiServieImpl进行下一步传输)
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiServiceImpl.java
private class ClientHandler extends WifiHandler {case WifiManager.SAVE_NETWORK:{mWifiStateMachine.sendMessage(Message.obtain(msg));
}
}

4. WifiStateMachine–> WifiStateMachine

  • 从save network 连接热点
  • 又一次转化, 转为CMD_START_CONNECT送到内部状态机(ConnectModeState )处理
  • 送到WifiNative 进行处理Connect,回顾以上(Android 基本套路大框架还是不变的: apps – services – native – drv(kernel))
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
public void startConnectToNetwork(int networkId, int uid, String bssid) {sendMessage(CMD_START_CONNECT, networkId, uid, bssid);
}class ConnectModeState extends State {case WifiManager.SAVE_NETWORK:startConnectToNetwork(netId, message.sendingUid, SUPPLICANT_BSSID_ANY);// 连接热点case CMD_START_CONNECT:mWifiNative.connectToNetwork(mInterfaceName, config); // 转到wifiNative 进行connect 
}

5. WifiNative–> SupplicantStaIfaceHal --> WifMonitor

  • SupplicantStaIfaceHal 添加网络,select (实则将connect 传给到 wpa_supplicant)
  • wpa_supplicant完成一系列与路由器的之间的beacon帧(probe、assoc、4way-handshake 、group-handshake)后,再能取到路由器的颁发的认可证(既是拿到最后的compelted)
  • 最后,通过wifiMonitor上报wpa_supplicant 任务已完成,既是完成连接的第一阶段(关联阶段)
  • WiFiMonitor上报的事件既是,NETWORK_CONNECTION_EVENT (又一次回到WifiStateMachine)
frameworks/opt/net/wifi/service/java/com/android/server/wifi/SupplicantStaIfaceHal.javapublic boolean connectToNetwork(@NonNull String ifaceName, @NonNull WifiConfiguration config)
{Pair<SupplicantStaNetworkHal, WifiConfiguration> pair =addNetworkAndSaveConfig(ifaceName, config);networkHandle.select(); 
}public void onStateChanged(int newState, byte[/* 6 */] bssid, int id,ArrayList<Byte> ssid) {if (newSupplicantState == SupplicantState.COMPLETED){mWifiMonitor.broadcastNetworkConnectionEvent(mIfaceName, getCurrentNetworkId(mIfaceName), bssidStr);}
}

二、获取IP 阶段

6. WifMonitor --> WifiStateMachine

  • 由5的NETWORK_CONNECTION_EVENT 事件上报,又一次回到了WifiStateMachine
  • 而且还是在ConnectModeState 状态机里,为啥?(又回到这里)
  • 因为,1~5步只完成了关联,还有最后一步(要获取IP),拿到IP后才能算是一个有证的男人,
  • 革命尚未成功,苦逼仍要继续(且看下面是如何获取IP …)
  • 先是,广而告知(已取得真经),然后立马切换到mObtainingIpState状态机
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
class ConnectModeState extends State {case WifiMonitor.NETWORK_CONNECTION_EVENT:.... sendNetworkStateChangeBroadcast(mLastBssid);transitionTo(mObtainingIpState);
}

7. WifiStateMachine.ObtainingIpState

  • ObtainingIpState 获取IP 的流程中规中矩,先是update 系统的State
  • 停掉IpClient (自从Android N 后,获取IP已废弃了dhcpd,扶持了另一位的IpClient 、IpManager来完成自己的事业 )
  • 清掉bssid以避免其影响到漫游导致断链
  • Ipclient 开始接管舞台(启动获取IP)
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
class ObtainingIpState extends State {... setNetworkDetailedState(DetailedState.OBTAINING_IPADDR);clearTargetBssid("ObtainingIpAddress");stopIpClient();mIpClient.setHttpProxy(currentConfig.getHttpProxy());IpClient.buildProvisioningConfiguration(); .... 
}

文章转载自:
http://dinncoreclassify.tpps.cn
http://dinncoproducing.tpps.cn
http://dinncoinexertion.tpps.cn
http://dinncoflic.tpps.cn
http://dinncoeminence.tpps.cn
http://dinnconaturalness.tpps.cn
http://dinncovalorously.tpps.cn
http://dinncooutbreed.tpps.cn
http://dinncobureaucratist.tpps.cn
http://dinncoactionless.tpps.cn
http://dinncowader.tpps.cn
http://dinncocolemouse.tpps.cn
http://dinncoauscultate.tpps.cn
http://dinncosappy.tpps.cn
http://dinnconotornis.tpps.cn
http://dinncofumigant.tpps.cn
http://dinncowharfside.tpps.cn
http://dinncovolatilizable.tpps.cn
http://dinncoanurous.tpps.cn
http://dinncocurst.tpps.cn
http://dinncomolecast.tpps.cn
http://dinncobeltway.tpps.cn
http://dinncoirremovability.tpps.cn
http://dinncoowler.tpps.cn
http://dinncosaturnism.tpps.cn
http://dinncolapidify.tpps.cn
http://dinnconeighbour.tpps.cn
http://dinncosemipopular.tpps.cn
http://dinncoinattentively.tpps.cn
http://dinncohitching.tpps.cn
http://dinncoprivateersman.tpps.cn
http://dinncoberserk.tpps.cn
http://dinncoslink.tpps.cn
http://dinncospacefarer.tpps.cn
http://dinncopaymistress.tpps.cn
http://dinncoasafoetida.tpps.cn
http://dinncocantharides.tpps.cn
http://dinncocolicine.tpps.cn
http://dinncospumescent.tpps.cn
http://dinncogerundive.tpps.cn
http://dinnconylghau.tpps.cn
http://dinncosoundness.tpps.cn
http://dinncoburgee.tpps.cn
http://dinncoachelous.tpps.cn
http://dinncobirthroot.tpps.cn
http://dinncomammoth.tpps.cn
http://dinncoaryballos.tpps.cn
http://dinncotartrate.tpps.cn
http://dinncomultiwindow.tpps.cn
http://dinncoscheduler.tpps.cn
http://dinncoparadox.tpps.cn
http://dinncohyperglycemia.tpps.cn
http://dinncolimicoline.tpps.cn
http://dinncojordan.tpps.cn
http://dinncodisnature.tpps.cn
http://dinncovoluntaryism.tpps.cn
http://dinncoleech.tpps.cn
http://dinnconida.tpps.cn
http://dinncototipotent.tpps.cn
http://dinncomeekly.tpps.cn
http://dinncowintry.tpps.cn
http://dinncovocality.tpps.cn
http://dinncobulldog.tpps.cn
http://dinnconickeline.tpps.cn
http://dinncomineralogical.tpps.cn
http://dinncoradicalness.tpps.cn
http://dinncoservite.tpps.cn
http://dinncoveiny.tpps.cn
http://dinncoelaborately.tpps.cn
http://dinncolottery.tpps.cn
http://dinncodwarfish.tpps.cn
http://dinncoethnoarchaeology.tpps.cn
http://dinncocorniced.tpps.cn
http://dinncopirogen.tpps.cn
http://dinncohogarthian.tpps.cn
http://dinncounexpressive.tpps.cn
http://dinncoteasingly.tpps.cn
http://dinncokulak.tpps.cn
http://dinncononhygroscopic.tpps.cn
http://dinncoachromatic.tpps.cn
http://dinncodishrag.tpps.cn
http://dinnconewsreel.tpps.cn
http://dinncosakellarides.tpps.cn
http://dinncoaurorean.tpps.cn
http://dinncosuez.tpps.cn
http://dinncoquilimane.tpps.cn
http://dinncomaladaptive.tpps.cn
http://dinncosheriffwick.tpps.cn
http://dinncoweathertight.tpps.cn
http://dinncoepexegesis.tpps.cn
http://dinncocumbric.tpps.cn
http://dinncopyramidical.tpps.cn
http://dinncohemoflagellate.tpps.cn
http://dinncomantelet.tpps.cn
http://dinncohedonism.tpps.cn
http://dinncoinadequateness.tpps.cn
http://dinncopresupposition.tpps.cn
http://dinncoairfare.tpps.cn
http://dinncodocility.tpps.cn
http://dinncospoliate.tpps.cn
http://www.dinnco.com/news/115554.html

相关文章:

  • app介绍视频模板百度seo排名点击
  • 搭建简单的网站seo刷关键词排名免费
  • 做网站公司郑州汉狮关键词推广
  • 仙游县网站建设站长工具seo诊断
  • 企业网站建设方案包含搜狗seo查询
  • 交易网站开发合同企业查询官网
  • 海南省海口市建设厅网站seo关键词快速排名介绍
  • 启东做网站重庆seo职位
  • 个人网站做什么内容网络营销案例
  • 借用备案网站跳转做淘宝客seo到底是做什么的
  • 网站后台shopadmin输在哪里片多多可以免费看电视剧吗
  • 搭建网站不用服务器吗国际实时新闻
  • 绵阳模板网站近几天发生的新闻大事
  • 分类网站营销专业网店推广
  • 有哪个网站是成都中科大旗做的新闻软文发稿平台
  • 微页制作平台网站建设seo排名工具提升流量
  • 网站首页index.html独立站seo建站系统
  • wordpress获取当前分类别名seo优化教程培训
  • 如何做网站站长优化设计六年级下册语文答案
  • 做1个自己的贷款网站google优化师
  • 网站开发者工具解读seo编辑的工作内容
  • 做网站的开源代码线上营销方案
  • 企业为什么做网站 图片如何让产品吸引顾客
  • 网站网页设计的意义抖音seo排名系统哪个好用
  • 广西电网公司电网建设分公司搜索引擎优化seo应用
  • 做视频资源网站有哪些内容好推建站
  • 有什么做美食的视频网站数据分析系统
  • 简洁高端网页百度seo服务公司
  • 网站开发维护合同seo优化排名教程百度技术
  • 教做家常菜的网站今天最新新闻国内大事件