日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Wifi模块—源码分析Wifi热点扫描2(Android P)

發布時間:2025/3/15 Android 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Wifi模块—源码分析Wifi热点扫描2(Android P) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 前言

? ? ? ?這次接著講Wifi工程流程中的Wifi熱點掃描過程部分的獲取掃描結果的過程,也是Wifi掃描過程的延續,可以先看前面Wifi掃描的分析過程。

? ? ? ? ? ? ? ? ? ? ? ? ? ?Wifi模塊—源碼分析Wifi熱點掃描(Android P)

? ? ? ? ? ? ? ? ? ? ? ? ? ??

二 圖示調用流程

? ? ? 這次的調用流程比較簡單就不畫流程圖了,而且流程是按三條不連貫的線路分析的。

三 代碼具體流程

1 底層獲取掃描結果

? ? ?在上一篇我們分析了Wifi掃描的過程。在底層完成掃描之后會通知框架層,由框架層的WifiMonitor監聽該事件并發送消息SCAN_RESULTS_EVENT,通知WificondScannerImpl進行處理,再通過WifiNative從底層獲取wifi掃描結果,最后再廣播SCAN_RESULTS_AVAILABLE_ACTION通知掃描結果可獲取。

1.1 framework/opt/net/wifi/service/java/com/android/server/wifi/WifiMonitor.java

/**
* Broadcast scan result event to all the handlers registered for this event.
* @param iface Name of iface on which this occurred.
*/
public void broadcastScanResultEvent(String iface) {
? ? sendMessage(iface, SCAN_RESULTS_EVENT);
}
?

1.2 framework/opt/net/wifi/service/java/com/android/server/wifi/scanner/WificondScannerImpl.java

@Override
public boolean handleMessage(Message msg) {
? ? switch(msg.what) {
? ? ? ? case WifiMonitor.SCAN_FAILED_EVENT:
? ? ? ? ? ? Log.w(TAG, "Scan failed");
? ? ? ? ? ? cancelScanTimeout();
? ? ? ? ? ? reportScanFailure();
? ? ? ? ? ? break;
? ? ? ? case WifiMonitor.PNO_SCAN_RESULTS_EVENT:
? ? ? ? ? ? pollLatestScanDataForPno();
? ? ? ? ? ? break;
? ? ? ? case WifiMonitor.SCAN_RESULTS_EVENT:
? ? ? ? ? ? cancelScanTimeout();
? ? ? ? ? ? pollLatestScanData();
? ? ? ? ? ? break;
? ? ? ? default:
? ? ? ? ? ? // ignore unknown event
? ? }
? ? return true;
}
繼續看 pollLatestScanData。

private void pollLatestScanData() {
? ? synchronized (mSettingsLock) {
? ? ? ? if (mLastScanSettings == null) {
? ? ? ? ? ? // got a scan before we started scanning or after scan was canceled
? ? ? ? ? ? return;
? ? ? ? }
?
? ? ? ? mNativeScanResults = mWifiNative.getScanResults(mIfaceName);
? ? ? ? List<ScanResult> singleScanResults = new ArrayList<>();
? ? ? ? int numFilteredScanResults = 0;
? ? ? ? for (int i = 0; i < mNativeScanResults.size(); ++i) {
? ? ? ? ? ? ScanResult result = mNativeScanResults.get(i).getScanResult();
? ? ? ? ? ? long timestamp_ms = result.timestamp / 1000; // convert us -> ms
? ? ? ? ? ? if (timestamp_ms > mLastScanSettings.startTime) {
? ? ? ? ? ? ? ? if (mLastScanSettings.singleScanFreqs.containsChannel(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? result.frequency)) {
? ? ? ? ? ? ? ? ? ? singleScanResults.add(result);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? numFilteredScanResults++;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? ...
? ? }
}
?通過mWifiNative.getScanResults來從底層獲取wifi熱點掃描結果。

1.3 framework/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java

/**
* Fetch the latest scan result from kernel via wificond.
* @param ifaceName Name of the interface.
* @return Returns an ArrayList of ScanDetail.
* Returns an empty ArrayList on failure.
*/
public ArrayList<ScanDetail> getScanResults(@NonNull String ifaceName) {
? ? return mWificondControl.getScanResults(
? ? ? ? ? ? ifaceName, WificondControl.SCAN_TYPE_SINGLE_SCAN);
}
接著看mWificondControl.getScanResults。

1.4 framework/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java

/**
* Fetch the latest scan result from kernel via wificond.
* @param ifaceName Name of the interface.
* @return Returns an ArrayList of ScanDetail.
* Returns an empty ArrayList on failure.
*/
public ArrayList<ScanDetail> getScanResults(@NonNull String ifaceName, int scanType) {
? ? ArrayList<ScanDetail> results = new ArrayList<>();
? ? IWifiScannerImpl scannerImpl = getScannerImpl(ifaceName);
? ? if (scannerImpl == null) {
? ? ? ? Log.e(TAG, "No valid wificond scanner interface handler");
? ? ? ? return results;
? ? }
? ? try {
? ? ? ? NativeScanResult[] nativeResults;
? ? ? ? if (scanType == SCAN_TYPE_SINGLE_SCAN) {
? ? ? ? ? ? nativeResults = scannerImpl.getScanResults();
? ? ? ? } else {
? ? ? ? ? ? nativeResults = scannerImpl.getPnoScanResults();
? ? ? ? }
? ? ? ? ...
? ? }
? ? ...
?
? ? return results;
}
看scannerImpl.getScanResults。

1.5 system/connectivity/wificond/aidl/android/net/wifi/IWifiScannerImpl.aidl

接下來就會調到C++層,暫時就不往下分析了。

?2 通知掃描結果可獲取

接下來廣播SCAN_RESULTS_AVAILABLE_ACTION通知掃描結果可獲取。

2.1 frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java

?在這里會接收到掃描結果可獲取的廣播WifiManager.SCAN_RESULTS_AVAILABLE_ACTION。

/**
* ?Receiver for handling broadcasts.
*
* ?This receiver is registered on the WorkHandler.
*/
@VisibleForTesting
final BroadcastReceiver mReceiver = new BroadcastReceiver() {
? ? @Override
? ? public void onReceive(Context context, Intent intent) {
? ? ? ? String action = intent.getAction();
?
? ? ? ? if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
? ? ? ? ? ? updateWifiState(
? ? ? ? ? ? ? ? ? ? intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
? ? ? ? ? ? ? ? ? ? ? ? ? ? WifiManager.WIFI_STATE_UNKNOWN));
? ? ? ? } else if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
? ? ? ? ? ? mStaleScanResults = false;
?
? ? ? ? ? ? fetchScansAndConfigsAndUpdateAccessPoints();
? ? ? ? } else if (WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION.equals(action)
? ? ? ? ? ? ? ? || WifiManager.LINK_CONFIGURATION_CHANGED_ACTION.equals(action)) {
? ? ? ? ? ? fetchScansAndConfigsAndUpdateAccessPoints();
? ? ? ? } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
? ? ? ? ? ? // TODO(sghuman): Refactor these methods so they cannot result in duplicate
? ? ? ? ? ? // onAccessPointsChanged updates being called from this intent.
? ? ? ? ? ? NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
? ? ? ? ? ? updateNetworkInfo(info);
? ? ? ? ? ? fetchScansAndConfigsAndUpdateAccessPoints();
? ? ? ? } else if (WifiManager.RSSI_CHANGED_ACTION.equals(action)) {
? ? ? ? ? ? NetworkInfo info =
? ? ? ? ? ? ? ? ? ? mConnectivityManager.getNetworkInfo(mWifiManager.getCurrentNetwork());
? ? ? ? ? ? updateNetworkInfo(info);
? ? ? ? }
? ? }
};
WifiTracker接收到這個廣播后,執行fetchScansAndConfigsAndUpdateAccessPoints。

/**
* Retrieves latest scan results and wifi configs, then calls
* {@link #updateAccessPoints(List, List)}.
*/
private void fetchScansAndConfigsAndUpdateAccessPoints() {
? ? final List<ScanResult> newScanResults = mWifiManager.getScanResults();
? ? if (isVerboseLoggingEnabled()) {
? ? ? ? Log.i(TAG, "Fetched scan results: " + newScanResults);
? ? }
?
? ? List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
? ? updateAccessPoints(newScanResults, configs);
}
走到mWifiManager.getScanResults。

2.2 framework/base/wifi/java/android/net/wifi/WifiManager.java

/**
* Return the results of the latest access point scan.
* @return the list of access points found in the most recent scan. An app must hold
* {@link android.Manifest.permission#ACCESS_COARSE_LOCATION ACCESS_COARSE_LOCATION} or
* {@link android.Manifest.permission#ACCESS_FINE_LOCATION ACCESS_FINE_LOCATION} permission
* in order to get valid results. ?If there is a remote exception (e.g., either a communication
* problem with the system service or an exception within the framework) an empty list will be
* returned.
*/
public List<ScanResult> getScanResults() {
? ? try {
? ? ? ? return mService.getScanResults(mContext.getOpPackageName());
? ? } catch (RemoteException e) {
? ? ? ? throw e.rethrowFromSystemServer();
? ? }
}
又是通過aidl進行跨進程調用mService.getScanResults。

2.3 framework/opt/net/wifi/service/java/com/android/server/wifi/WifiServiceImpl.java

/**
* Return the results of the most recent access point scan, in the form of
* a list of {@link ScanResult} objects.
* @return the list of results
*/
@Override
public List<ScanResult> getScanResults(String callingPackage) {
? ? enforceAccessPermission();
? ? int uid = Binder.getCallingUid();
? ? long ident = Binder.clearCallingIdentity();
? ? if (mVerboseLoggingEnabled) {
? ? ? ? mLog.info("getScanResults uid=%").c(uid).flush();
? ? }
? ? try {
? ? ? ? mWifiPermissionsUtil.enforceCanAccessScanResults(callingPackage, uid);
? ? ? ? final List<ScanResult> scanResults = new ArrayList<>();
? ? ? ? boolean success = mWifiInjector.getWifiStateMachineHandler().runWithScissors(() -> {
? ? ? ? ? ? scanResults.addAll(mScanRequestProxy.getScanResults());
? ? ? ? }, RUN_WITH_SCISSORS_TIMEOUT_MILLIS);
? ? ? ? if (!success) {
? ? ? ? ? ? Log.e(TAG, "Failed to post runnable to fetch scan results");
? ? ? ? }
? ? ? ? return scanResults;
? ? } catch (SecurityException e) {
? ? ? ? return new ArrayList<ScanResult>();
? ? } finally {
? ? ? ? Binder.restoreCallingIdentity(ident);
? ? }
}
返回scanResults。

這里和android O還是有一些差別的。看mScanRequestProxy.getScanResults。

2.4 framework/opt/net/wifi/service/java/com/android/server/wifi/ScanRequestProxy.java

/**
* Return the results of the most recent access point scan, in the form of
* a list of {@link ScanResult} objects.
* @return the list of results
*/
public List<ScanResult> getScanResults() {
? ? return mLastScanResults;
}
看看mLastScanResults怎么來的。

// Common scan listener for scan requests.
private class ScanRequestProxyScanListener implements WifiScanner.ScanListener {
? ? ...
? ? @Override
? ? public void onResults(WifiScanner.ScanData[] scanDatas) {
? ? ? ? if (mVerboseLoggingEnabled) {
? ? ? ? ? ? Log.d(TAG, "Scan results received");
? ? ? ? }
? ? ? ? // For single scans, the array size should always be 1.
? ? ? ? if (scanDatas.length != 1) {
? ? ? ? ? ? Log.wtf(TAG, "Found more than 1 batch of scan results, Failing...");
? ? ? ? ? ? sendScanResultBroadcastIfScanProcessingNotComplete(false);
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? WifiScanner.ScanData scanData = scanDatas[0];
? ? ? ? ScanResult[] scanResults = scanData.getResults();
? ? ? ? if (mVerboseLoggingEnabled) {
? ? ? ? ? ? Log.d(TAG, "Received " + scanResults.length + " scan results");
? ? ? ? }
? ? ? ? // Store the last scan results & send out the scan completion broadcast.
? ? ? ? mLastScanResults.clear();
? ? ? ? mLastScanResults.addAll(Arrays.asList(scanResults));
? ? ? ? sendScanResultBroadcastIfScanProcessingNotComplete(true);
? ? }
? ? ...
};
將scanResults放進LastScanResults,看scanData.getResults。WifiScanner的服務端是WifiScanningServiceImpl。

2.5 framework/base/wifi/java/android/net/wifi//WifiScanner.java

/**
* all the information garnered from a single scan
*/
public static class ScanData implements Parcelable {
?
? ? ...
? ? public ScanResult[] getResults() {
? ? ? ? return mResults;
? ? }
? ? ...
}
返回mResults。

3 Settings應用層獲取掃描結果

應用層

3.1 packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java

在生命周期函數里監聽Wifi的狀態。

@Override
public void onStart() {
? ? super.onStart();
?
? ? // On/off switch is hidden for Setup Wizard (returns null)
? ? mWifiEnabler = createWifiEnabler();
?
? ? if (mIsRestricted) {
? ? ? ? restrictUi();
? ? ? ? return;
? ? }
?
? ? onWifiStateChanged(mWifiManager.getWifiState());
}
當wifi狀態改變時會有相應的操作。

/** Called when the state of Wifi has changed. */
@Override
public void onWifiStateChanged(int state) {
? ? if (mIsRestricted) {
? ? ? ? return;
? ? }
?
? ? final int wifiState = mWifiManager.getWifiState();
? ? switch (wifiState) {
? ? ? ? case WifiManager.WIFI_STATE_ENABLED:
? ? ? ? ? ? updateAccessPointPreferences();
? ? ? ? ? ? break;
?
? ? ? ? case WifiManager.WIFI_STATE_ENABLING:
? ? ? ? ? ? removeConnectedAccessPointPreference();
? ? ? ? ? ? mAccessPointsPreferenceCategory.removeAll();
? ? ? ? ? ? addMessagePreference(R.string.wifi_starting);
? ? ? ? ? ? setProgressBarVisible(true);
? ? ? ? ? ? break;
?
? ? ? ? case WifiManager.WIFI_STATE_DISABLING:
? ? ? ? ? ? removeConnectedAccessPointPreference();
? ? ? ? ? ? mAccessPointsPreferenceCategory.removeAll();
? ? ? ? ? ? addMessagePreference(R.string.wifi_stopping);
? ? ? ? ? ? break;
?
? ? ? ? case WifiManager.WIFI_STATE_DISABLED:
? ? ? ? ? ? setOffMessage();
? ? ? ? ? ? setAdditionalSettingsSummaries();
? ? ? ? ? ? setProgressBarVisible(false);
? ? ? ? ? ? break;
? ? }
}
監聽到wifi狀態已經開啟,看updateAccessPointPreferences。

private void updateAccessPointPreferences() {
? ? // in case state has changed
? ? if (!mWifiManager.isWifiEnabled()) {
? ? ? ? return;
? ? }
? ? // AccessPoints are sorted by the WifiTracker
? ? final List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();
? ? if (isVerboseLoggingEnabled()) {
? ? ? ? Log.i(TAG, "updateAccessPoints called for: " + accessPoints);
? ? }
? ? ...
}
看mWifiTracker.getAccessPoints。

?java框架層

3.2 frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java

/**
* Gets the current list of access points.
*
* <p>This method is can be called on an abitrary thread by clients, but is normally called on
* the UI Thread by the rendering App.
*/
@AnyThread
public List<AccessPoint> getAccessPoints() {
? ? synchronized (mLock) {
? ? ? ? return new ArrayList<>(mInternalAccessPoints);
? ? }
}
接下來的過程最終還是會走到WifiManager.getScanResults,WifiServiceImpl.getScanResults,細節上會有差異。

?
————————————————
版權聲明:本文為CSDN博主「BrighterLi」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42093428/article/details/82834234

總結

以上是生活随笔為你收集整理的Wifi模块—源码分析Wifi热点扫描2(Android P)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

韩国精品视频在线观看 | 99在线免费观看 | 伊在线视频 | 正在播放日韩 | 999久久久国产精品 高清av免费观看 | 午夜色大片在线观看 | 午夜精品久久 | 91在线国产观看 | 人人狠 | 人人澡人人爱 | 国产在线国偷精品产拍免费yy | 2019中文字幕第一页 | 4hu视频| 成人黄色资源 | 9久久精品| 国产亚洲成av人片在线观看桃 | 免费在线观看的av网站 | 久久av观看| 精品国产一区二区三区男人吃奶 | 18av在线视频 | 日日夜夜噜噜噜 | 国产美女精品 | 黄色软件在线观看免费 | 在线观看免费黄视频 | 国产毛片久久 | 久久伊人免费视频 | 久久久久亚洲精品国产 | 国产高清网站 | 波多野结衣日韩 | av在观看 | a√资源在线 | 99久久影视 | 国产精品福利无圣光在线一区 | 国产成人精品在线观看 | 西西444www大胆无视频 | 五月激情婷婷丁香 | 五月婷婷在线观看视频 | 激情五月婷婷激情 | 国产区久久| 五月天综合婷婷 | 久草国产精品 | 亚洲天堂网在线观看视频 | 国语自产偷拍精品视频偷 | 91在线视频免费观看 | 色婷五月天 | 日本久久高清视频 | 在线电影a | 国产成人精品一区二区三区在线观看 | 久香蕉 | 久久精品爱视频 | 久久精品国产精品亚洲精品 | 狠狠干美女 | 成人国产精品免费 | 国产精品久久久久久久久毛片 | 成年人在线看视频 | 中文字幕成人一区 | 亚洲精品视频在线观看视频 | 一区二区三区免费在线观看视频 | 久久久午夜视频 | 亚洲国产经典视频 | 国产黄色一级片 | bbw av | 日产乱码一二三区别在线 | 欧美日高清视频 | 国产中文字幕视频在线观看 | 久久网页| 久久精品99国产国产精 | 99在线视频网站 | 青青啪 | 黄色片免费电影 | 久久久国产精品一区二区三区 | 欧美日韩中文在线视频 | 97视频网站| 欧美色操| 在线探花 | 免费看成人av | 亚洲综合丁香 | 在线看片视频 | 亚洲欧美激情插 | 亚州性色 | 久久五月天婷婷 | 国产精久久久久久妇女av | 免费欧美精品 | 色资源网在线观看 | 国产精彩视频一区 | 99欧美视频 | 中文字幕在线资源 | 色婷婷综合久久久久中文字幕1 | 蜜桃av人人夜夜澡人人爽 | 操碰av | 国产又粗又长又硬免费视频 | 热九九精品 | 久久人人精品 | 国产视频一级 | 高潮久久久 | 天天拍夜夜拍 | 久草在线最新视频 | 午夜色大片在线观看 | 亚洲精品国产综合99久久夜夜嗨 | av在线官网| 有码一区二区三区 | 天天射一射 | 性色在线视频 | 国产福利免费看 | 国产麻豆精品久久一二三 | 欧美在线视频一区二区三区 | 中文av在线天堂 | 亚洲国产精品电影在线观看 | 日韩精品最新在线观看 | 欧美一区二区日韩一区二区 | 国产精品视频观看 | 精品免费久久久久 | 中文字幕免费中文 | 日韩中文字幕电影 | 久久久精品视频网站 | 日韩激情视频在线 | 欧美一区二区日韩一区二区 | 欧美激情第一页xxx 午夜性福利 | 500部大龄熟乱视频 欧美日本三级 | 国产精品mv | 黄色成人免费电影 | 97精品国自产拍在线观看 | 日本动漫做毛片一区二区 | 999久久a精品合区久久久 | a天堂最新版中文在线地址 久久99久久精品国产 | 日韩久久精品 | 波多野结衣一区 | 欧美性久久久久久 | 天天夜夜操 | 91精品国产99久久久久久红楼 | 欧美精品黑人性xxxx | 色综合天天综合 | 色综合久久中文字幕综合网 | 久久久久久久久久久久久久电影 | 日韩高清在线一区二区 | 成人午夜免费福利 | 国产精品中文字幕av | 91在线中文| 在线播放一区 | 国产精品久久久久久久久免费 | 亚洲三区在线 | 2022久久国产露脸精品国产 | 日日骑 | 91精品久久久久久综合乱菊 | 人人爽人人爽人人爽人人爽 | 999久久久免费视频 午夜国产在线观看 | 色综合a| 一区中文字幕电影 | 欧美精品少妇xxxxx喷水 | 国产伦精品一区二区三区照片91 | 成人日批视频 | 欧美最猛性xxxxx免费 | 亚洲黄色app | 久久免费中文视频 | 亚洲高清视频一区二区三区 | www.日本色 | 一区二区av| 97免费在线观看视频 | 免费黄色av. | 在线中文字母电影观看 | 99热这里精品 | 中文有码在线 | av黄色大片 | 国内外成人免费在线视频 | 午夜久久影视 | 亚洲最大av网站 | 欧美成人黄色片 | 天天色综合1 | 亚洲一区二区三区四区精品 | 精品欧美小视频在线观看 | 开心丁香婷婷深爱五月 | 96久久精品 | 欧美最爽乱淫视频播放 | 国产视频二区三区 | 正在播放国产一区二区 | 国产在线看一区 | 在线观看亚洲国产精品 | 日韩中文字幕亚洲一区二区va在线 | 日韩精品一区二区三区在线视频 | 丁香婷婷激情国产高清秒播 | 免费高清在线观看成人 | 久久久国产精品一区二区三区 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 99精品视频免费观看视频 | 日本久久精品视频 | 国产精品免费大片视频 | 中文字幕免费高清 | 狠狠色狠狠色 | 婷婷国产v亚洲v欧美久久 | 三日本三级少妇三级99 | 在线观看中文字幕网站 | 亚洲一二三久久 | 久久久久久久久久久久电影 | 永久免费精品视频网站 | 中文字幕视频在线播放 | 日韩欧美电影在线 | 激情婷婷综合网 | 国产在线观看高清视频 | 久久大片 | 国产二区av| 国产在线色站 | 天天干干| 深爱开心激情网 | 国产免费观看久久黄 | 国产日韩精品在线 | 91丨九色丨国产在线观看 | 黄色av电影一级片 | av电影不卡在线 | 成年人黄色大片在线 | 99久久er热在这里只有精品15 | 国产黄色美女 | 国产又粗又长的视频 | 一级黄色a视频 | 超碰人人超碰 | 色综合夜色一区 | 欧美另类重口 | 精品在线观看一区二区 | 波多野结衣综合网 | 在线观看的黄色 | 91精品久久久久久久99蜜桃 | 91麻豆国产 | 西西www444| 久久久天堂 | 日韩高清av | 日韩精品一卡 | 又湿又紧又大又爽a视频国产 | 在线观看网站黄 | 日韩精品五月天 | 欧美三级在线播放 | 婷婷五月色综合 | 国产成人香蕉 | 日本三级国产 | 亚洲激情 | 韩国一区二区三区在线观看 | 二区视频在线观看 | 视频在线观看入口黄最新永久免费国产 | 手机av电影在线 | 国产亚洲成人精品 | 中文字幕在线观看网址 | 精品国产一区二区三区不卡 | 成年人av在线播放 | 综合黄色网| 国产中文字幕在线播放 | 在线视频 亚洲 | 一区二区三区在线视频观看58 | 国产二区av | 久久久综合香蕉尹人综合网 | 久久久www成人免费精品 | 日韩素人在线观看 | 亚洲春色综合另类校园电影 | 99久久精品网 | 最近中文国产在线视频 | 国产96在线视频 | 丝袜网站在线观看 | 一区二区三区在线免费 | 成人免费看黄 | www日韩精品| 91久久精品一区二区三区 | 人人揉人人揉人人揉人人揉97 | 四虎影视成人永久免费观看亚洲欧美 | 99久久综合精品五月天 | 婷婷中文字幕在线观看 | av网站手机在线观看 | 欧美精品久久久久久久久久 | 欧美一区二区三区在线看 | 欧美a在线看| 日韩高清av在线 | 日本精品视频一区二区 | 五月婷色| 91探花国产综合在线精品 | 免费在线观看一区 | 人成在线免费视频 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 日韩色爱 | 欧美久久成人 | 色五月成人 | 99在线视频观看 | 成年人网站免费在线观看 | 热99久久精品 | 日韩二区三区在线 | 免费美女久久99 | 五月婷婷天堂 | 在线a视频免费观看 | 中文字幕在线看视频国产 | 91看片麻豆 | 免费看污在线观看 | 久久精品综合 | 亚洲免费婷婷 | 免费久久久久久久 | 天天干人人干 | 丝袜美腿在线 | 91亚洲精品久久久蜜桃 | 亚洲精品永久免费视频 | 国产精品乱码久久久久久1区2区 | 操操操天天操 | 久久高清精品 | 伊人久操| 欧美日韩色婷婷 | 日本免费久久高清视频 | 亚洲精品xxx| 国产精品久久久久久久久久了 | 国产免费观看久久黄 | 5月丁香婷婷综合 | 午夜国产一区二区 | 午夜精品999| 成人黄大片视频在线观看 | 99国产高清 | 成年人在线看片 | 国产a级精品| 西西www4444大胆视频 | 免费网站污| 热久久电影 | 天天色天天色 | 久青草视频在线观看 | 五月婷婷开心中文字幕 | 久久精品视频日本 | 日韩精品视频在线观看免费 | 成人午夜免费剧场 | 最近中文字幕视频网 | 精品国产亚洲一区二区麻豆 | 最近字幕在线观看第一季 | 麻豆91在线观看 | 欧美日本不卡高清 | 欧美亚洲另类在线视频 | 亚洲精品久久久久久久不卡四虎 | 69久久夜色精品国产69 | 日韩成人免费电影 | 免费观看mv大片高清 | 美女网色 | 成人av高清在线 | 四虎在线免费观看视频 | 中文字幕免费不卡视频 | 欧美aaa大片 | 日韩在线在线 | 一区在线观看 | 国产精品99久久久久久大便 | 精品国产精品久久 | 欧美孕妇与黑人孕交 | 久久女同性恋中文字幕 | 亚洲国产精品电影 | 午夜久久成人 | 精品国产1区 | 久久五月天综合 | 久久久久久久久久久成人 | av电影在线播放 | 五月婷婷在线观看视频 | 日韩免费网址 | 蜜臀久久99精品久久久久久网站 | 亚洲一级理论片 | 久久久免费精品视频 | 中文字幕av在线播放 | 国产成人精品一区二三区 | 日韩免费电影 | 九九在线国产视频 | 久久大香线蕉app | 九九精品毛片 | 欧美日韩视频一区二区三区 | 在线看国产 | 91在线免费观看国产 | 懂色av一区二区在线播放 | 久久久久国产精品免费免费搜索 | 亚州性色| 在线观看视频福利 | 国产精品一区二区av影院萌芽 | av电影在线免费 | 亚洲最新在线 | av福利第一导航 | www.夜夜操.com| 99电影| av在线等 | 色婷婷综合视频在线观看 | 人人射av| 天天色天天操天天爽 | 中文字幕免费高清 | 色综合天天狠狠 | 在线视频1卡二卡三卡 | 免费网站观看www在线观看 | 五月婷婷在线视频观看 | 国产精品美女在线 | 97视频在线观看视频免费视频 | a特级毛片 | 天天玩天天干天天操 | 日韩精品免费在线视频 | 久草网在线视频 | 91精品免费 | 一区二区三区免费在线观看 | 9热精品| 久久成人综合 | 99精品免费久久久久久日本 | 中文高清av | 国产亚洲小视频 | 91视频大全| 久久久九色精品国产一区二区三区 | 91天天操 | 亚洲视频一区二区三区在线观看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 91看片在线免费观看 | 夜夜爱av| 久一在线 | 国产成人精品aaa | 色综合天 | 久久公开视频 | 999久久久国产精品 高清av免费观看 | 亚洲婷婷综合色高清在线 | 国产99在线 | 亚洲欧美在线综合 | 亚洲精品视频在线播放 | 中文字幕资源站 | 日韩精品中文字幕有码 | www.狠狠操.com | 国产精品久久久久一区二区 | 欧美一区二视频在线免费观看 | 国产成人三级一区二区在线观看一 | 国产麻豆果冻传媒在线观看 | 国语麻豆 | 国产精品粉嫩 | 缴情综合网五月天 | 日韩激情三级 | 亚洲国产中文字幕 | 成人99免费视频 | 在线播放国产一区二区三区 | 亚洲精品麻豆 | 久久精品女人毛片国产 | 少妇bbbb | 一区二区日韩av | 91精品少妇偷拍99 | 色婷婷综合久色 | 911国产在线观看 | 欧美一级久久久 | 欧美亚洲成人免费 | 五月婷婷天堂 | 全久久久久久久久久久电影 | 欧美在线观看视频一区二区三区 | 国产精品久久视频 | 成人午夜黄色影院 | 国产精品午夜免费福利视频 | 国产xxxx性hd极品 | 日本99精品| 久久av观看 | 国产精品区二区三区日本 | 国产美女免费观看 | 国内精品视频一区二区三区八戒 | 96精品高清视频在线观看软件特色 | 干干夜夜 | 亚洲精品视频在线播放 | 丁香婷婷久久久综合精品国产 | 国产精品久久久久9999 | 亚洲国产精久久久久久久 | 91亚洲精品久久久蜜桃网站 | 99精彩视频在线观看免费 | 亚洲资源在线网 | 国产视频导航 | 国产一区二区三区久久久 | 偷拍精品一区二区三区 | www九九热 | 最新精品视频在线 | 国产福利一区二区三区视频 | 国产一区二区高清不卡 | 成人av高清在线 | 97视频在线免费播放 | 久久国产精品小视频 | 亚洲精品91天天久久人人 | 亚洲婷婷丁香 | 中文字幕久久亚洲 | 黄污视频大全 | av在线最新 | 69亚洲乱 | 国产伦精品一区二区三区… | 国产精品自拍av | 五月婷婷色 | 日韩色爱| 不卡国产在线 | 国产69精品久久app免费版 | 精品久久一级片 | 日本天天色 | 国产一区二区手机在线观看 | av看片在线 | 91在线精品观看 | 五月婷婷六月丁香激情 | 亚洲精品在线播放视频 | 在线不卡中文字幕播放 | 国模视频一区二区 | 日韩精品字幕 | 成年人视频在线免费 | 久久综合国产伦精品免费 | 伊人热 | 六月激情久久 | 激情综合站 | 国产麻豆果冻传媒在线观看 | 久久影院一区 | 中文在线www | 看毛片网站 | 成人sm另类专区 | 五月天网站在线 | 99精品一区 | 中文十次啦 | 在线免费观看黄色 | 免费人成在线观看网站 | 国产黄色特级片 | 亚洲人成网站精品片在线观看 | 欧美久久久久久久 | www.看片网站 | 激情婷婷欧美 | 久久精品国产亚洲 | 国产精品中文 | 91在线视频网址 | 日韩精品视频在线观看网址 | 黄色aaa毛片 | 国内偷拍精品视频 | 国产精品免费在线 | 人人澡人| 99视频99 | 国产黄色片免费 | 精品国产日本 | 日韩欧美视频一区二区三区 | 久久婷婷精品 | 黄色在线观看免费 | 开心激情网五月天 | 亚洲精品免费在线观看视频 | 少妇资源站 | 96精品高清视频在线观看软件特色 | 日韩av一区二区在线 | 日本成人中文字幕在线观看 | 国产精品99精品久久免费 | 午夜视频在线观看一区二区 | 久久综合中文色婷婷 | 欧洲一区二区在线观看 | 麻豆传媒电影在线观看 | 综合黄色网 | 最新国产精品久久精品 | 麻豆成人精品 | 免费精品国产 | 日韩欧美在线播放 | 97超碰福利久久精品 | a在线观看免费视频 | 亚洲国产精品激情在线观看 | 免费一级特黄毛大片 | 91片黄在线观看动漫 | 99精彩视频 | 人人爽夜夜爽 | 久久久999精品视频 国产美女免费观看 | 综合网五月天 | 国产91免费看 | 日韩一级电影网站 | 天天爱天天射天天干天天 | 日韩视频图片 | 久久8精品 | 99精品欧美一区二区三区 | 丁香视频全集免费观看 | 日本三级在线观看中文字 | 国产精品麻豆三级一区视频 | 在线观看精品一区 | 天天色天天 | 欧美性生交大片免网 | 91免费在线 | 日韩一级电影网站 | www.亚洲视频 | 在线观看视频色 | 久久免费精品国产 | 国产二区免费视频 | 国产精品video | 久久婷婷国产色一区二区三区 | 日韩欧美网址 | 91亚洲狠狠婷婷综合久久久 | 黄色福利视频网站 | 国产一线二线三线在线观看 | 国产无限资源在线观看 | 国产黄色片免费 | 成人av手机在线 | 天堂在线一区 | 成人av中文字幕 | 亚洲永久精品在线 | 成人黄色片免费 | 91精品久久久久久综合乱菊 | 国产一区二区精品 | 99热在线观看免费 | 国产精品久久久久三级 | 精品国产一区二区三区av性色 | 亚洲精品在线免费 | 亚洲精品日韩av | 日韩欧美69| 精品久久精品久久 | 日韩精品一区二区三区在线播放 | 99精品久久99久久久久 | 久久人人97超碰com | 99人成在线观看视频 | 香蕉视频在线免费 | 色婷婷丁香 | 亚洲成人黄色在线 | 中文字幕中文字幕在线一区 | 一级黄色免费网站 | 久久视频 | 欧美日韩免费一区二区三区 | 最新超碰在线 | 日韩高清国产精品 | 国产精品嫩草影视久久久 | 日韩久久视频 | 国产精品免费不卡 | 欧美日韩精品在线免费观看 | 曰韩精品 | 97综合网 | 中文字幕免费国产精品 | 在线观看中文字幕一区 | 中文字幕在线不卡国产视频 | 日本视频久久久 | 四虎在线观看精品视频 | 91天天视频 | 黄色一级大片免费看 | 亚洲男男gaygay无套 | 97偷拍在线视频 | 日韩丝袜在线观看 | 久久精品1区 | 日韩精品一区二区三区中文字幕 | 欧美性生活免费看 | 欧美日韩另类在线 | 黄色大全免费网站 | 久色网 | www.国产高清 | 亚洲精品视频在线播放 | 久久国产美女视频 | 婷婷性综合| 91麻豆精品国产午夜天堂 | 激情喷水| 久久久久欧美精品999 | 国产黄色精品视频 | 狠狠色丁香婷婷综合最新地址 | 亚洲精品国产欧美在线观看 | 久久视频一区二区 | 黄色在线观看免费 | 久久99久久精品 | 国产中文字幕在线播放 | 九九九热精品 | 99色婷婷 | 中文字幕在线免费观看视频 | 欧美一区,二区 | 亚洲伊人成综合网 | 成人a视频片观看免费 | 日本精品一区二区在线观看 | 成人av动漫在线观看 | 丁香婷婷网 | 在线观看亚洲精品视频 | 最新99热 | 九七在线视频 | 狠狠色综合欧美激情 | 免费在线观看91 | 2019精品手机国产品在线 | 欧美综合色在线图区 | 久久精品综合 | 日产乱码一二三区别免费 | 国产黄色免费电影 | 超碰在线公开 | 探花视频在线观看免费 | 国产美女在线精品免费观看 | 黄网在线免费观看 | 中国一级特黄毛片大片久久 | 久久免费毛片视频 | 亚洲情感电影大片 | 亚洲成av人片一区二区梦乃 | 免费观看一级特黄欧美大片 | 色婷婷综合视频在线观看 | 日韩欧美一区二区三区在线 | 欧美乱熟臀69xxxxxx | 日韩精品中文字幕一区二区 | 国产精品高清在线 | 丁香资源影视免费观看 | 狠狠网亚洲精品 | 国产精品一区二区 91 | 亚洲伊人av| 国产在线一区二区三区播放 | 国产小视频福利在线 | 91日韩精品一区 | 国产一区成人在线 | 黄色软件视频大全免费下载 | 人人超在线公开视频 | 久久精精品视频 | 亚洲激情p | 91福利视频久久久久 | 日韩在线无| 精品色999 | 成人在线免费看视频 | 久久99精品久久久久婷婷 | 特级aaa毛片| 亚洲午夜精 | 免费a视频在线 | 福利一区二区三区四区 | 欧美日韩久| 91在线亚洲 | 四虎在线免费观看 | 久草精品视频 | 最近中文字幕高清字幕免费mv | 91中文字幕在线视频 | 视频福利在线 | 一区二区三区四区五区在线 | 亚洲精品乱码久久久一二三 | 国产高清在线视频 | 日韩精品一区二区三区电影 | 日韩大片免费在线观看 | 久久久高清 | 国产999免费视频 | 亚洲精品美女久久 | 欧美天天射 | 久久精品一级片 | v片在线播放| 久青草国产在线 | 蜜臀一区二区三区精品免费视频 | 色七七亚洲影院 | 一区二区视频在线观看免费 | 精品专区一区二区 | 四虎影院在线观看av | 天天射射天天 | 亚洲综合色播 | 久久只精品99品免费久23小说 | 国产日产高清dvd碟片 | 亚洲精品国产第一综合99久久 | 人人澡人人爽欧一区 | 国产精品一二 | 国产又粗又长又硬免费视频 | 亚洲va在线va天堂 | 国产中年夫妇高潮精品视频 | 精品国产欧美 | 午夜精品一区二区三区在线 | 天天在线免费视频 | 中文字幕专区高清在线观看 | 亚洲国产日韩精品 | 日韩在线视频一区二区三区 | 成人亚洲精品久久久久 | 91成人区| 在线韩国电影免费观影完整版 | 香蕉视频在线免费 | 色偷偷人人澡久久超碰69 | 国产精品一区二区三区99 | 久9在线 | 精品久久综合 | 三级黄色大片在线观看 | 久久avav| 国产免费又粗又猛又爽 | 在线观看理论 | 欧洲精品视频一区二区 | 久操操 | 国产1级毛片 | 一本一道久久a久久综合蜜桃 | 亚洲欧洲美洲av | 麻豆超碰| 亚洲黄色一级大片 | 久章草在线| 日日躁你夜夜躁你av蜜 | 亚洲激情视频在线 | 国产高清精品在线 | 久久成人精品电影 | 国色天香在线观看 | 97精品国产91久久久久久 | 人人网人人爽 | 91精品老司机久久一区啪 | 亚洲国产黄色片 | www.国产在线 | 毛片在线播放网址 | 国产精品久久久久久久久软件 | 久久综合久久综合久久 | 国产成人久久精品一区二区三区 | 久操视频在线 | 成年人黄色大全 | 五月婷婷一级片 | 丁香激情五月婷婷 | 欧美成人性战久久 | 午夜视频在线观看网站 | 中文字幕精品一区久久久久 | 狠狠的干 | 国产69精品久久久久久久久久 | 日韩理论片在线 | 亚洲五月婷婷 | 丁香花在线视频观看免费 | 视频福利在线 | 国产美腿白丝袜足在线av | av一级久久 | 在线播放一区 | 日韩av免费在线电影 | 五月婷婷香蕉 | av资源中文字幕 | 久久国产欧美日韩 | 亚洲丝袜一区二区 | 欧美激情另类文学 | 热久久免费国产视频 | 亚洲精品中文字幕在线 | 久久综合九色综合欧美就去吻 | 久久免费观看视频 | 激情av在线资源 | 欧美aa在线 | 国产黑丝一区二区 | 在线免费91 | 九七在线视频 | 精品日韩视频 | 精品国产一区二区三区在线 | 国产在线精品福利 | 国产精品久久久久久久午夜 | 视频一区在线免费观看 | 成人免费在线看片 | 国产在线视频在线观看 | 国产精品嫩草影院99网站 | 香蕉免费在线 | 亚洲九九九在线观看 | 丁香花中文字幕 | 在线国产日韩 | 久久伊人国产精品 | 国产婷婷在线观看 | www国产亚洲精品久久麻豆 | 最近中文字幕免费视频 | 91精品久久久久久久99蜜桃 | 国产精品手机在线观看 | 亚洲色图激情文学 | 天天天天色射综合 | 菠萝菠萝蜜在线播放 | 亚洲一区二区高潮无套美女 | www.色五月 | 国产婷婷视频在线 | 欧美老少交| 欧美激情另类文学 | 日本不卡一区二区三区在线观看 | 欧美看片 | 少妇自拍av | 99热国产在线 | 国产麻豆视频在线观看 | 日韩中文字幕91 | 国模精品一区二区三区 | 久久国产免费看 | 久艹在线观看视频 | 日本三级国产 | 国产又粗又硬又爽视频 | a天堂一码二码专区 | 黄色小说视频网站 | 最近中文字幕久久 | 五月婷婷色综合 | 免费观看久久久 | 91久久精品日日躁夜夜躁国产 | 中文字幕中文字幕在线中文字幕三区 | 九九综合九九 | 亚洲精品在线资源 | 精品久久久久久亚洲综合网站 | 99精品国自产在线 | 精品主播网红福利资源观看 | 免费在线观看中文字幕 | 久久国精品 | 久久久精品免费观看 | 国产精品黄色 | 麻豆系列在线观看 | 久久国产午夜精品理论片最新版本 | 欧美精品久久久久久久久免 | 不卡的av在线播放 | 欧美福利在线播放 | 久久视频6 | 伊人黄 | 免费黄a| 91麻豆精品国产自产在线 | 国产在线观看a | 欧美亚洲精品在线观看 | 国产综合视频在线观看 | 久久成人午夜视频 | 超碰在线人人草 | 午夜久久久久久久久久久 | 91系列在线观看 | 夜夜躁日日躁狠狠躁 | 精品国产激情 | 国产1区在线观看 | 99r在线精品 | 欧美精品第一 | 亚洲另类交 | 国产第一页福利影院 | 国产精品一区二区三区视频免费 | 999在线精品 | 国产一区视频在线观看免费 | 久久手机精品视频 | 中文字幕精品视频 | av一级在线观看 | 日韩有码在线播放 | 在线国产专区 | 在线va视频 | 久久亚洲精品国产亚洲老地址 | 久久兔费看a级 | .国产精品成人自产拍在线观看6 | 精品在线视频一区 | 美腿丝袜一区二区三区 | 最近中文字幕国语免费高清6 | 一区二精品 | 久久超级碰| 欧美日韩国产一二三区 | 日韩高清不卡一区二区三区 | 午夜影视剧场 | 91爱爱免费观看 | 精品国产一区二区三区久久久蜜臀 | 麻豆视频免费播放 | 99久久久久成人国产免费 | 日日夜夜精品 | 午夜手机电影 | 色永久免费视频 | 国产精品久久久久久妇 | 最近最新mv字幕免费观看 | 国产欧美日韩精品一区二区免费 | 国产高清在线免费 | 国产精品久久一 | av久久在线 | 五月婷婷综合激情网 | 国产黄在线 | 丝袜美腿一区 | 国产原创在线 | 国产精品一区二区三区在线 | 色在线视频网 | 六月丁香伊人 | 最近高清中文字幕 | 九九有精品 | 国产精品爽爽久久久久久蜜臀 | 成年人在线电影 | 中文字幕亚洲精品在线观看 | 在线精品在线 | 不卡国产视频 | 天天射天天舔天天干 | 国产麻豆精品久久一二三 | 伊人丁香 | 日日夜夜爱 | 操综合 | 国产精华国产精品 | 亚洲精品视频在线免费播放 | 999久久国产 | 69人人 | 操老逼免费视频 | 欧美大片www | 国产片免费在线观看视频 | 日韩大片在线播放 | 免费观看视频的网站 | 国产99久久久久久免费看 | av成人在线网站 | 亚洲国产成人精品在线观看 | 免费观看久久久 | 六月天综合网 | 久久久久久网 | 日韩视频一区二区在线观看 | 少妇bbb搡bbbb搡bbbb| 五月天天色 | 中文字幕在线观看完整版 | 久久在线影院 | 精品国产自在精品国产精野外直播 | 日韩免费 | av免费看电影 | 96精品视频 | 91av原创| 国产精品视频在线观看 | 亚洲精品中文字幕在线观看 | 亚洲精品中文在线资源 | 成人中文字幕在线观看 | 日日夜日日干 | 天天色婷婷 | 天天天综合网 | 亚洲另类视频在线 | 人人爽人人爽av | 久久香蕉电影 | 久久久精品国产一区二区三区 | 日本一区二区三区视频在线播放 | www操操| 国产99色 | 欧美日韩国产一区二区三区在线观看 | 成年人毛片在线观看 | 亚洲精品黄网站 | 亚洲日本一区二区在线 | 麻豆视频成人 | 99久免费精品视频在线观看 | 成人免费亚洲 | 97免费在线视频 | 97视频免费在线看 | 国产精品国产三级国产专区53 | 欧美日韩在线免费视频 | 日韩中文字幕免费视频 | 91大神精品视频在线观看 | 波多野结衣在线视频免费观看 | 精品国产乱码 | 精品国产视频在线观看 | 亚洲欧洲精品视频 | 人人添人人 | 日本中文字幕系列 | 亚洲国产中文字幕在线观看 | a视频在线观看 | 国内精品中文字幕 | 久久网站免费 | 国产99区| 81国产精品久久久久久久久久 | 天天综合天天做天天综合 | 偷拍区另类综合在线 | 久久精品国产精品亚洲精品 | 欧美资源在线观看 | 九九热免费观看 | 五月激情丁香图片 | 九九色视频 | 久久久久成人精品 | 日韩精品久久久久久中文字幕8 | 欧美日韩国产高清视频 | 国产精品中文字幕在线观看 | 亚洲日韩中文字幕在线播放 | 亚洲精品伦理在线 | 日韩午夜高清 | 毛片美女网站 | 国产精品免费视频观看 |