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

福田建网站公司seo服务包括哪些

福田建网站公司,seo服务包括哪些,模具公司网站中品质见证怎么做,湖南营销型网站建设案例Android Wifi 的扫描场景分为下面四种情况: 1.亮屏情况下,在Wifi settings界面,固定扫描,扫描时间为10s。 2.亮屏情况下,在非Wifi settings界面,二进制指数退避扫描,退避:interval…

Android Wifi 的扫描场景分为下面四种情况:

1.亮屏情况下,在Wifi settings界面,固定扫描,扫描时间为10s。

2.亮屏情况下,在非Wifi settings界面,二进制指数退避扫描,退避:interval*(2^n), 最小间隔min=20s, 最大间隔max=160s.

3.灭屏情况下,有保存网络时,若已连接,不扫描,否则,PNO扫描,即只扫描已保存的网络。最小间隔min=20s,最大间隔max=20s*3=60s。

4.无保存网络情况下,固定扫描,间隔为5分钟,用于通知用户周围存在可用开放网络。

1.亮屏情况下,在Wifi settings界面,固定扫描,扫描时间为10s。

从 wifi扫描流程梳理 可以看到wifi扫描流程会走到WifiTracker的handleMessage函数中,我们看sendEmptyMessageDelayed,会发送一条扫描的信息,其中包含了WIFI_RESCAN_INTERVAL_MS,WIFI_RESCAN_INTERVAL_MS就是默认的扫描周期,可以看到系统设置的默认周期是10 * 1000,也就是10秒。

WifiTracker.java

public void handleMessage(Message message) {if (message.what != MSG_SCAN) return;if (mWifiManager.startScan()) {mRetry = 0;} else if (++mRetry >= 3) {mRetry = 0;if (mContext != null) {Toast.makeText(mContext, R.string.wifi_fail_to_scan, Toast.LENGTH_LONG).show();}return;}sendEmptyMessageDelayed(MSG_SCAN, WIFI_RESCAN_INTERVAL_MS);}

2.亮屏情况下,在非Wifi settings界面,二进制指数退避扫描,退避:interval*(2^n), 最小间隔min=20s, 最大间隔max=160s.

WifiConnectivityManager.java

startConnectivityScan --> startPeriodicScan --> startPeriodicSingleScan

private void startConnectivityScan(boolean scanImmediately) {// Always stop outstanding connecivity scan if there is anystopConnectivityScan();if (mWifiState != WIFI_STATE_CONNECTED && mWifiState != WIFI_STATE_DISCONNECTED) {return;}if (mScreenOn) {startPeriodicScan(scanImmediately);} else {if (mWifiState == WIFI_STATE_DISCONNECTED && !mPnoScanStarted) {startDisconnectedPnoScan();}}}
private void startPeriodicScan(boolean scanImmediately) {mPnoScanListener.resetLowRssiNetworkRetryDelay();if (scanImmediately) {resetLastPeriodicSingleScanTimeStamp();}mPeriodicSingleScanInterval = PERIODIC_SCAN_INTERVAL_MS;startPeriodicSingleScan();}
// Start a single scan and set up the interval for next single scan.private void startPeriodicSingleScan() {long currentTimeStamp = mClock.getElapsedSinceBootMillis();if (mLastPeriodicSingleScanTimeStamp != RESET_TIME_STAMP) {long msSinceLastScan = currentTimeStamp - mLastPeriodicSingleScanTimeStamp;if (msSinceLastScan < PERIODIC_SCAN_INTERVAL_MS) {localLog("Last periodic single scan started " + msSinceLastScan+ "ms ago, defer this new scan request.");schedulePeriodicScanTimer(PERIODIC_SCAN_INTERVAL_MS - (int) msSinceLastScan);return;}...............if (isScanNeeded) {mLastPeriodicSingleScanTimeStamp = currentTimeStamp;startSingleScan(isFullBandScan, WIFI_WORK_SOURCE);schedulePeriodicScanTimer(mPeriodicSingleScanInterval);// Set up the next scan interval in an exponential backoff fashion.mPeriodicSingleScanInterval *= 2;if (mPeriodicSingleScanInterval >  MAX_PERIODIC_SCAN_INTERVAL_MS) {mPeriodicSingleScanInterval = MAX_PERIODIC_SCAN_INTERVAL_MS;}} else {// Since we already skipped this scan, keep the same scan interval for next scan.schedulePeriodicScanTimer(mPeriodicSingleScanInterval);}}

对于扫描间隔的设置

    // Periodic scan interval in milli-seconds. This is the scan// performed when screen is on.public static final int PERIODIC_SCAN_INTERVAL_MS = 20 * 1000; // 20 seconds// When screen is on and WiFi traffic is heavy, exponential backoff// connectivity scans are scheduled. This constant defines the maximum// scan interval in this scenario.@VisibleForTestingpublic static final int MAX_PERIODIC_SCAN_INTERVAL_MS = 160 * 1000; // 160 seconds

3.灭屏情况下,有保存网络时,若已连接,不扫描,否则,PNO扫描,即只扫描已保存的网络。最小间隔min=20s,最大间隔max=20s*3=60s。

待续

4.无保存网络情况下,固定扫描,间隔为5分钟,用于通知用户周围存在可用开放网络。

(注:第四种情况属于Android O的逻辑,因为在P的代码里还没有找到关于这个扫描的代码,也可能取消了)

WifiStateMachine.java

class DisconnectedState extends State {@Overridepublic void enter() {Log.i(TAG, "disconnectedstate enter");// We dont scan frequently if this is a temporary disconnect// due to p2pif (mTemporarilyDisconnectWifi) {p2pSendMessage(WifiP2pServiceImpl.DISCONNECT_WIFI_RESPONSE);return;}/** clear the roaming state, if we were roaming, we failed */mIsAutoRoaming = false;mWifiConnectivityManager.handleConnectionStateChanged(WifiConnectivityManager.WIFI_STATE_DISCONNECTED);/*** If we have no networks saved, the supplicant stops doing the periodic scan.* The scans are useful to notify the user of the presence of an open network.* Note that these are not wake up scans.*/if (mNoNetworksPeriodicScan != 0 && !mP2pConnected.get()&& mWifiConfigManager.getSavedNetworks().size() == 0) {sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,++mPeriodicScanToken, 0), mNoNetworksPeriodicScan);}mDisconnectedTimeStamp = mClock.getWallClockMillis();mWifiStateTracker.updateState(WifiStateTracker.DISCONNECTED);}
mNoNetworksPeriodicScan = mContext.getResources().getInteger(R.integer.config_wifi_no_network_periodic_scan_interval);

/frameworks/base/core/res/res/values/config.xml
mNoNetworksPeriodicScan在config.xml中注册,周期为5分钟。

<!-- Integer indicating the framework no networks periodic scan interval in milliseconds. -->
<integer translatable="false" name="config_wifi_no_network_periodic_scan_interval">300000</integer>

http://www.15wanjia.com/news/21200.html

相关文章:

  • 网站产品展示怎么做搜索引擎营销是指
  • flash网站源码 免费营销推广渠道有哪些
  • 做网站的必要性北京百度快速优化排名
  • 免费中文wordpress主题下载地址网络优化工程师有多累
  • 页面设计培训学什么云南网络营销seo
  • 制作网站软件用什么语言百度竞价排名的利与弊
  • 网站建设的关键技术免费b站推广网站下载
  • wordpress 索引百度推广优化排名怎么收费
  • 有哪些做特卖的网站引擎优化seo怎么做
  • 帮别人做app网站门户的兼职广告软文怎么写
  • 外贸网站模板哪里下载电子报刊的传播媒体是什么
  • 做商城网站需要备案什么域名网络营销的特点
  • 装修网站怎么做兰州网络seo
  • 购买域名如何建设网站在线搭建网站
  • wordpress友情链接做导航谷歌搜索引擎seo
  • 诏安网站建设怎样做网站推广啊
  • 做元器件上什么网站想在百度上推广怎么做
  • 又一个 wordpress 站点运营推广是做什么的
  • 网站建设方案书的内容seo网络推广是什么意思
  • wordpress编辑器添加代码工具seo 工具分析
  • 网站运营经验分享ppt模板产品推广介绍怎么写
  • 做网站的可以黑客户的网站吗seo广告优化
  • iis服务器怎么部署php网站广告的六种广告形式
  • 网站培训费用百度手机快速排名点击软件
  • 网站建设 中企动力厨具全国疫情高峰感染高峰进度
  • 如何搭建网站赚钱seo关键词选择及优化
  • 有没有做a的电影网站站长工具ip地址
  • 网站为什么显示正在建设中网络营销竞价推广
  • 如何做汽车的创意视频网站交换友情链接的条件
  • 装饰工程施工方案苏州seo排名公司