精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HarmonyOS編程跨設備跳轉 | Java注釋版

開發 后端 OpenHarmony
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[407016]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

這里有HarmonyOS文檔學習 | 分布式任務調度 | 思維導圖,是關于文檔部分的思維導圖,跨設備調用也是用到里面的知識

本文章只是說明書,是代碼的補充部分。不建議僅根據該文進行實踐

正確的做法是下載附件中的源碼,對照源碼和文章的步驟,進行實踐復現

跨設備跳轉是頁面跳轉的進階版,如果頁面跳轉還不熟悉,可以在我的第一彈中練習。在安卓中由于沒有跨設備的接口,所以要實現都需要自己寫。而在鴻蒙中,只需要用一兩行代碼就能實現跨設備的的核心操作

三種跨設備跳轉的區別

只把頁面內容遷移過去

把編輯中的內容遷移過去,支持雙向控制

把編輯中的內容遷移過去,并可撤回遷移,僅支持單向控制

正文

1. 實現步驟

跨設備調用屬于不同頁面跳轉,所以要有兩個以上的Ability

第一步:創建多個Ability,創建后,會在slice、layout和graphic中自動生成對應的文件

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

第二步:編寫xml布局文件,這里只是簡單的示例,所以就只有簡單的內容

第三步:編寫業務邏輯代碼

1. 聲明權限

因為涉及到跨設備調度,所以為了安全,需要獲取權限才能進行交互

聲明獲取設備列表即設備信息的權限

config.json

  1. "reqPermissions": [ 
  2.     { 
  3.         "name""ohos.permission.DISTRIBUTED_DATASYNC" 
  4.     }, 
  5.     { 
  6.         "name""ohos.permission.GET_BUNDLE_INFO" 
  7.     }, 
  8.     { 
  9.         "name""ohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE" 
  10.     }, 
  11.     { 
  12.         "name""ohos.permission.GET_DISTRIBUTED_DEVICE_INFO" 
  13.     } 

注意:

第三方應用使用:ohos.permission.DISTRIBUTED_DATASYNC

還需要在主Ability代碼中顯式聲明

  1. public class MainAbility extends Ability { 
  2.    @Override 
  3.    public void onStart(Intent intent) { 
  4.       super.onStart(intent); 
  5.       super.setMainRoute(MainAbilitySlice.class.getName()); 
  6.  
  7.       // 為第三方應用權限的主動聲明 
  8.       requestPermissionsFromUser(new String[] {"ohos.permission.DISTRIBUTED_DATASYNC"}, 0); 
  9.    } 

2. 獲取設備Id

只有拿到設備Id,跳轉的時候才會根據Id進行頁面遷移

3. 實現遷移功能代碼

……

補充模擬器如何分布式跨設備測試:

如何多開模擬器,進行分布式應用開發(在DES 2.1版本之前,只能用真機進行分布式跨設備開發)

1. 先確保自己DES版本是2.1以上,可以通過 Help > Check for Updates 進行更新

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

2. 更新完之后也可以順便更新自己的 SDK 和 Previewer (Previewer這個挺好用的,寫完布局可直接預覽而不用開模擬器)

3. 點擊 SDK Platforms 和 SDK Tools 查看,在這里我都更新了,反正內存多~

4. 都更新完之后,可以去 File > Settings 或者按 Ctrl + Alt + S 快捷鍵進入設置面板,點擊 DevEco Labs,勾選 Enable Super Device(其他也可以勾選,Java Previewr賊好用,在寫完xml布局文件后,點擊最右邊導航欄或者按 Alt + 3 就可以預覽了)

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

5. 然后就可以看到模擬器上多了 Super Device

2. 核心代碼部分

2.1. 只把頁面內容遷移過去

MainAbilitySlice.java

  1. // 通過組件id獲得組件 
  2. btn1 = (Button)findComponentById(ResourceTable.Id_migration_btn_01); 
  3. // 設置按鈕的點擊監聽事件 
  4. btn1.setClickedListener(component -> { 
  5.     // 要實現跨設備的打開FA 
  6.     // 第一步當然就是要獲取到設備id 
  7.  
  8.     // 通過設備管理的獲得設備列表方法獲得 
  9.     List<DeviceInfo> deviceList = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE); 
  10.     // 判空 
  11.     if (deviceList.isEmpty()) { 
  12.         return null
  13.     } 
  14.     // 獲得設備數量 
  15.     int deviceNum = deviceList.size(); 
  16.     // 創建兩個列表,分別存設備id和設備名 
  17.     ArrayList<String> deviceIds = new ArrayList<>(deviceNum); 
  18.     ArrayList<String> deviceNames = new ArrayList<>(deviceNum); 
  19.     // 遍歷設備列表,將設備id和設備名分別存到兩個列表中 
  20.     deviceList.forEach(device -> { 
  21.         deviceIds.add(device.getDeviceId()); 
  22.         deviceNames.add(device.getDeviceName()); 
  23.     }); 
  24.  
  25.     // 我就直接使用deviceIds的第一個元素,作為啟動遠程設備的目標id 
  26.     String deviceId = deviceIds.get(0); 
  27.  
  28.     if (deviceId != null) { 
  29.         // 新建Intent,意圖:信息的載體 
  30.         Intent btn_1_intent = new Intent(); 
  31.         // OperationBuilder()方式 
  32.         Operation operation = new Intent.OperationBuilder() 
  33.             .withDeviceId(deviceId) // 獲得設備id,在本地的時候可以為空 
  34.             .withBundleName("com.anzia.study_2")    // 包名,在config.json中可找到 
  35.             .withAbilityName("com.anzia.study_2.RemoteAbility") // 設立目標頁面,一定要路徑名!!! 
  36.             .withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE)   // 設立標簽,允許跨設備 
  37.             .build();   // 構建 
  38.  
  39.         btn_1_intent.setOperation(operation);   // 把operation存進intent中 
  40.  
  41.         startAbility(btn_1_intent); 
  42.     } 
  43.  
  44. }); 

測試結果:

這里用的是模擬器,項目要在兩個模擬上都進行打包安裝

安裝好后會提示用戶獲取權限,獲得權限才能獲取設備Id,從而進行跨設備頁面跳轉

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

點擊第一個按鈕,即可看到另一設備啟動

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

2.2. 把編輯中的內容遷移過去,支持雙向控制

由于獲取設備Id的這部分代碼經常使用,所以可以把這部分封裝為一個工具類

如果要獲取設備Id,只需要實現這個工具類即可

DeviceUtils.java

  1. public class DeviceUtils { 
  2.    public static String getDeviceId() { 
  3.       // 通過設備管理的獲得設備列表方法獲得 
  4.       List<DeviceInfo> deviceList = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE); 
  5.       // 判空 
  6.       if (deviceList.isEmpty()) { 
  7.          return null
  8.       } 
  9.       // 獲得設備數量 
  10.       int deviceNum = deviceList.size(); 
  11.       // 創建兩個列表,分別存設備id和設備名 
  12.       ArrayList<String> deviceIds = new ArrayList<>(deviceNum); 
  13.       ArrayList<String> deviceNames = new ArrayList<>(deviceNum); 
  14.       // 遍歷設備列表,將設備id和設備名分別存到兩個列表中 
  15.       deviceList.forEach(device -> { 
  16.          deviceIds.add(device.getDeviceId()); 
  17.          deviceNames.add(device.getDeviceName()); 
  18.       }); 
  19.  
  20.       // 我就直接使用deviceIds的第一個元素,作為啟動遠程設備的目標id 
  21.       String deviceIdStr = deviceIds.get(0); 
  22.       return deviceIdStr; 
  23.    } 

在MainAbilitySlice.java中實現可交互的頁面跳轉

使用new ElementName()設備模板頁面路徑

  1. btn2 = (Button)findComponentById(ResourceTable.Id_migration_btn_02); 
  2. btn2.setClickedListener(component -> { 
  3.    Intent btn_2_intent = new Intent(); 
  4.    ElementName migrationSliceEn = new ElementName("""com.anzia.study_2""MigrationAbility"); 
  5.    btn_2_intent.setElement(migrationSliceEn); 
  6.    startAbility(btn_2_intent); 
  7. }); 

要把編輯中的文字遷移到其他設備,需要對目標Ability和Slice實現IAbilityContinuation接口,并把構造方法設置為true

MigrationAbility.java

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

MigrationAbilitySlice.java

  1. public class MigrationAbilitySlice extends AbilitySlice implements IAbilityContinuation { 
  2.  
  3.    private TextField textField; 
  4.    private Button mgBtn; 
  5.    private String tfStr = ""
  6.  
  7.    @Override 
  8.    public void onStart(Intent intent) { 
  9.       super.onStart(intent); 
  10.       super.setUIContent(ResourceTable.Layout_ability_migration); 
  11.  
  12.       // 編輯的文字 
  13.       textField = (TextField) findComponentById(ResourceTable.Id_textfield_migration); 
  14.       // 默認為空 
  15.       textField.setText(tfStr); 
  16.  
  17.       mgBtn = (Button) findComponentById(ResourceTable.Id_migration_button); 
  18.       mgBtn.setClickedListener(component -> { 
  19.          // 核心代碼,點擊按鈕,實現FA的遷移 
  20.          // 第一步獲取設備id 
  21.          String deviceId = DeviceUtils.getDeviceId(); 
  22.          if (deviceId != null) { 
  23.             // 實現設備遷移 
  24.             continueAbility(deviceId); 
  25.          } 
  26.       }); 
  27.  
  28.    } 
  29.  
  30.    @Override 
  31.    public void onActive() { 
  32.       super.onActive(); 
  33.    } 
  34.  
  35.    @Override 
  36.    public void onForeground(Intent intent) { 
  37.       super.onForeground(intent); 
  38.    } 
  39.  
  40.    @Override 
  41.    public boolean onStartContinuation() { 
  42.       return true
  43.    } 
  44.  
  45.    @Override 
  46.    // 保持數據 
  47.    public boolean onSaveData(IntentParams intentParams) { 
  48.       // 獲得文本框中的文字,并保存到data中,鍵值對形式 
  49.       intentParams.setParam("data", textField.getText()); 
  50.       return true
  51.    } 
  52.  
  53.    @Override 
  54.    // 恢復數據 
  55.    public boolean onRestoreData(IntentParams intentParams) { 
  56.       // 在其他設備恢復數據時,從data讀取內容 
  57.       tfStr = intentParams.getParam("data").toString(); 
  58.       return true
  59.    } 
  60.  
  61.    @Override 
  62.    public void onCompleteContinuation(int i) { 
  63.  
  64.    } 

測試結果

點擊按鈕進入MigrationAbility頁面,在輸入框中輸入文本內容,再點擊按鈕,可以看到已經遷移過去了

在目標設備上添加新的內容,再按點擊遷移,可以對源設備的內容進行修改。即,可以雙向控制

2.3. 把編輯中的內容遷移過去,并可撤回遷移,僅支持單向控制

實現方式和上面的基本差不多,也要實現IAbilityContinuation接口,在部分細節不同

不同點:

1. 在頁面中多了一個回遷的按鈕

2. 在Slice中

跨設備的方法由continueAbility()變為continueAbilityReversibly()

撤回遷移使用的方法是reverseContinueAbility()

MigrationBackAbilitySlice.java

HarmonyOS編程 | 跨設備跳轉 | Java注釋版-鴻蒙HarmonyOS技術社區

測試結果:

在文本框輸入數據后,點擊遷移按鈕,就可以在目標設備喚起應用了。點擊撤回按鈕,也可以把目標設備的頁面撤回

這個操作是單向的,不能再遷移后,對目標設備內容修改再點擊遷移修改源設備內容。這樣做會閃退

3. 總結

因為涉及到設備之間的流轉,涉及到安全,所以要在config.json中聲明權限。如果想利用第三方設備,除了要在config.json中聲明,還需要在代碼中顯式聲明

跨設備需要獲取設備Id,如果多個Slice中都要獲取設備Id,那么可以將獲取設備Id的這個步驟封裝為一個工具類

在簡單的跨設備調用,可以使用OperationBuilder()方法即可

要將設備編輯中的內容跨設備的話,需要為目標頁面的Ability和Slice實現IAbilityContinuation()接口,使用new ElementName()

使用continueAbility進行雙向交互

使用continueAbilityReversibly()和reverseContinueAbility()進行單向跨設備跳轉及撤回內容

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-06-22 16:40:32

鴻蒙HarmonyOS應用

2020-11-05 10:05:25

App

2021-01-06 10:59:14

鴻蒙HarmonyOSPage Abilit

2021-06-16 15:18:03

鴻蒙HarmonyOS應用

2021-07-08 09:42:04

鴻蒙HarmonyOS應用

2021-01-06 11:21:56

鴻蒙HarmonyOS應用開發

2021-03-23 09:52:39

鴻蒙HarmonyOS應用開發

2021-03-29 09:59:09

鴻蒙HarmonyOS應用開發

2021-10-28 14:48:46

鴻蒙HarmonyOS應用

2011-04-07 10:50:47

數據庫編程注釋規范

2022-10-11 15:26:16

網絡編程鴻蒙

2015-03-17 09:59:41

跨平臺

2021-12-21 09:56:47

鴻蒙HarmonyOS應用

2014-06-26 11:09:13

2020-11-24 11:58:19

HarmonyOS
點贊
收藏

51CTO技術棧公眾號

久久天天躁狠狠躁老女人| 欧美在线观看18| 国产伦精品一区二区三区视频孕妇| 久久久综合久久久| 欧洲vs亚洲vs国产| 欧美性受极品xxxx喷水| 乱熟女高潮一区二区在线| 天天干天天做天天操| 久久综合中文| 欧美日韩成人网| 少妇真人直播免费视频| 综合久久伊人| 日韩欧美中文字幕在线播放| 亚洲高清不卡一区| 亚洲国产欧美另类| 青青草精品视频| 久久久免费精品视频| 亚洲精品午夜视频| 大奶在线精品| 欧美日本乱大交xxxxx| 欧美成人高潮一二区在线看| 在线视频91p| 国产91精品入口| 国产精品网站视频| 圆产精品久久久久久久久久久| 久久精品av| 亚洲久久久久久久久久久| www激情五月| 91大神在线观看线路一区| 性做久久久久久免费观看| 一区二区免费在线视频| 嫩草在线播放| 91丨porny丨国产| 99re视频在线播放| 亚洲自拍偷拍另类| 天堂成人免费av电影一区| 97碰在线观看| 精品一区在线视频| 欧美激情精品久久久六区热门| 中文字幕精品久久久久| 巨胸大乳www视频免费观看| 国产乱论精品| 精品黑人一区二区三区久久| 青娱乐国产精品视频| 免费视频观看成人| 欧美综合一区二区三区| 熟妇人妻无乱码中文字幕真矢织江| 女人让男人操自己视频在线观看| 亚洲一区二区三区自拍| 国产日韩欧美大片| 老司机精品影院| 国产精品久久777777| 亚洲欧美日产图| 91在线免费看| 国产精品国产三级国产aⅴ原创| 少妇免费毛片久久久久久久久| 可以在线观看的av| 久久女同互慰一区二区三区| 麻豆传媒一区| 韩国中文免费在线视频| 国产欧美精品在线观看| 清纯唯美一区二区三区| 国产小视频在线| 国产欧美一区视频| 日韩午夜视频在线观看| 成年人免费在线视频| 国产精品三级av| 性做爰过程免费播放| 一二三四区在线观看| 亚洲亚洲人成综合网络| 久久综合九色综合88i| 高清精品在线| 在线中文字幕一区| 不用播放器的免费av| av一级久久| 精品成人一区二区三区| 麻豆精品免费视频| 日韩影院二区| 久久久视频在线| 久久久久久久久久久影院 | 亚洲五码在线观看视频| 亚洲区欧洲区| 欧美性xxxx在线播放| 91插插插插插插插插| 国产精品毛片无码| 亚洲国产91色在线| 中字幕一区二区三区乱码| 性欧美欧美巨大69| 欧美精品videosex极品1| 在线观看免费av片| 久久精品久久99精品久久| 91丨九色丨国产| 日本护士...精品国| 国产精品久久久99| 成年人午夜免费视频| 日韩一区二区三区免费| 欧美一区二区三区男人的天堂| 免费无码一区二区三区| 久久神马影院| 午夜美女久久久久爽久久| 波多野结衣在线观看一区| 国内国产精品久久| 欧美成人蜜桃| 中文字幕在线观看播放| 色爱区综合激月婷婷| 午夜影院免费版| 精品一区电影| 97免费中文视频在线观看| 国产又粗又黄又爽视频| 91麻豆免费看片| 肉大捧一出免费观看网站在线播放| 中日韩脚交footjobhd| 91精品国产福利| 亚洲人成人无码网www国产| 国产精品99一区二区| 国产精品免费福利| 性插视频在线观看| 一区二区在线免费| 三上悠亚在线一区二区| 欧美成人午夜77777| 久久亚洲精品网站| 中文字幕1区2区3区| 99久久久精品| www成人免费| 久久丁香四色| 少妇激情综合网| 亚洲国产av一区二区三区| 白白色 亚洲乱淫| 蜜臀在线免费观看| 亚洲伦理网站| 日韩最新在线视频| 看黄色一级大片| 91视频91自| 久久国产午夜精品理论片最新版本| 亚洲伦理网站| 久久久精品国产网站| 中文字幕在线视频免费| 国产色产综合色产在线视频| 少妇高潮喷水久久久久久久久久| 9l亚洲国产成人精品一区二三| 久久视频在线视频| 一级黄在线观看| 国产精品欧美精品| 成年人在线观看视频免费| 伊人春色之综合网| 日韩av日韩在线观看| 久久精品国产亚洲a∨麻豆| 粉嫩老牛aⅴ一区二区三区| 亚洲精品第二页| 亚洲国产三级| 久久影院理伦片| 综合另类专区| 一区二区三欧美| 综合久久中文字幕| 中文字幕在线不卡国产视频| 又色又爽又黄视频| 亚洲国产精品成人| 99久久99久久精品国产片| 美女网站视频在线| 亚洲黄页网在线观看| 国产精品100| 国产日韩影视精品| 激情黄色小视频| 欧美99久久| 国产亚洲欧美一区二区三区| 色老头在线一区二区三区| 亚洲免费小视频| 中文字幕91爱爱| 亚洲私人影院在线观看| 亚洲图片欧美另类| 国产精品久久久亚洲一区| 欧美黑人xxxxx| 国语自产精品视频在线看抢先版结局| 中文字幕最新精品| 国产成人精品免费看视频| 亚洲午夜精品17c| 免费黄色在线视频| 麻豆精品一区二区三区| 影音先锋成人资源网站| 国产精品zjzjzj在线观看| 欧美亚洲另类视频| 香蕉视频免费在线播放| 日韩一级完整毛片| 精品人妻无码一区二区性色| 国产精品污www在线观看| av在线免费观看不卡| 国产精品亚洲综合久久| 中文字幕一区二区三区乱码| 中文字幕日韩在线| 国产成人精品电影久久久| 最新av在线播放| 亚洲欧美日韩视频一区| av官网在线观看| 日韩欧美一区二区三区| 天天看片中文字幕| 国产亚洲一区二区三区在线观看 | 国产电影一区二区三区| 波多野结衣乳巨码无在线| 欧美一级精品| 国产伦精品一区二区三区四区视频 | 亚洲欧美一区二区在线观看| 一级少妇精品久久久久久久| 免费在线成人网| 1024av视频| 欧美日韩mv| 亚洲午夜高清视频| 日韩啪啪网站| 国产精品美女黄网| 深夜福利亚洲| 国产99久久精品一区二区 夜夜躁日日躁| 很黄的网站在线观看| 亚洲男人天堂古典| 高清国产mv在线观看| 91麻豆精品国产| 精品视频一二三区| 欧美日韩在线视频观看| 岛国毛片在线观看| 国产精品夫妻自拍| 中文字幕国产综合| www.日韩av| 丰满饥渴老女人hd| 久久精品72免费观看| 北条麻妃av高潮尖叫在线观看| 亚洲二区在线| 黄色片免费在线观看视频| 国产国产精品| 亚洲一卡二卡三卡| 欧美日韩久久精品| 欧美日韩精品不卡| 亚州av一区| 精品日本一区二区三区| 9l视频自拍九色9l视频成人| 91成人免费在线观看| va天堂va亚洲va影视| 国产精品综合久久久| 97欧美成人| 国产精欧美一区二区三区| 欧美aa免费在线| 97超碰蝌蚪网人人做人人爽 | 亚洲最新视频在线播放| 999精品视频在线观看播放| 国产视频一区二区三区在线观看| 精品久久久久久中文字幕人妻最新| 不卡电影一区二区三区| 国产高潮视频在线观看| 顶级嫩模精品视频在线看| 日韩大尺度视频| 国产成人精品网址| 一级全黄裸体片| 不卡av在线网| 狠狠人妻久久久久久综合蜜桃| 99久久99久久精品国产片果冻| 国产麻豆剧传媒精品国产av| 99久久婷婷国产综合精品| 国产中文字幕一区二区| 2023国产精品视频| 亚洲色成人网站www永久四虎| 国产视频不卡一区| 国产91在线播放九色| 亚洲人成亚洲人成在线观看图片 | 亚洲激情自拍| 国产h视频在线播放| 亚洲永久字幕| 无码内射中文字幕岛国片| 奇米色777欧美一区二区| 欧美美女性视频| 国产成人在线免费观看| 亚洲婷婷在线观看| 国产亚洲污的网站| 日韩在线一卡二卡| 一区二区高清视频在线观看| 中文字幕在线观看免费视频| 欧洲一区二区av| 国产精品毛片一区二区在线看舒淇| 日韩丝袜美女视频| 在线观看xxx| 色黄久久久久久| 超黄网站在线观看| 日韩免费黄色av| 99精品女人在线观看免费视频 | 午夜久久久久久噜噜噜噜| 亚洲精品国产电影| 超碰免费在线观看| 欧美韩国理论所午夜片917电影| 久热在线观看视频| 国产日韩欧美中文| 国产亚洲成av人片在线观黄桃| 欧美一级二级三级九九九| 亚洲成人精选| 成人av一级片| 国内精品第一页| 免费污网站在线观看| 亚洲免费伊人电影| 天天爽夜夜爽人人爽| 日韩一区二区三区免费观看| 免费一级在线观看播放网址| 久久综合久久八八| 成人开心激情| 国产精品国色综合久久| 日韩欧美综合| jizzjizzxxxx| 国产精品69毛片高清亚洲| 亚洲a v网站| 亚洲福利视频导航| 国产精品久久久久久69| 国产婷婷97碰碰久久人人蜜臀 | 欧美中文字幕在线视频| 久久伊人久久| 亚洲国产一区二区精品视频 | 91插插插插插插插插| 97久久精品人人爽人人爽蜜臀| 精品国产国产综合精品| 91国偷自产一区二区开放时间| 亚洲精品国产一区二| 色婷婷av一区二区三区在线观看 | 亚洲午夜一级| 成人黄色一级大片| 国产三区在线成人av| 国产精品老女人| 日韩女同互慰一区二区| 欧美精品hd| 国产极品jizzhd欧美| 羞羞色国产精品网站| 男人添女人下部高潮视频在观看| 狠狠色丁香婷婷综合久久片| 伊人影院综合网| 在线视频中文字幕一区二区| 外国精品视频在线观看 | 日韩av中字| 精品欧美国产| 一本色道久久综合亚洲精品高清| 亚洲第一成肉网| 亚洲婷婷在线视频| 国产精品国产三级国产普通话对白| 国产一区二区三区久久精品| 亚洲天堂一区二区| 奇米精品在线| 久久久噜噜噜久久狠狠50岁| 无码熟妇人妻av| 黑人巨大精品欧美一区免费视频| 后入内射欧美99二区视频| 色综合久久88色综合天天看泰| 国产一区二区三区免费在线| 中文字幕中文字幕在线中一区高清 | 国产91精品视频在线观看| 精品国产一区二区三区成人影院| 男女激情免费视频| 成人av电影在线播放| 日韩成人免费在线观看| 亚洲国产精久久久久久| 色多多在线观看| 日本午夜精品一区二区| 日韩中文字幕区一区有砖一区| 韩国三级hd中文字幕| 欧美三片在线视频观看| 色网站在线看| 91传媒视频免费| 亚洲国产网站| 国产精品无码久久久久一区二区| 色噜噜狠狠成人中文综合| 高清性色生活片在线观看| 国产精品在线看| 午夜亚洲福利| 女同毛片一区二区三区| 在线观看日产精品| 国内精品久久久久国产| 99久久久精品免费观看国产| 亚洲国内自拍| xxxx日本免费| 欧美精品久久99久久在免费线| av片哪里在线观看| 精品国产乱码久久久久久88av| 另类亚洲自拍| 裸体武打性艳史| 亚洲国产日韩欧美在线动漫| 日日夜夜天天综合| 国产日韩视频在线播放| 不卡的看片网站| 中文字幕无线码一区| 欧美精品videos另类日本| 九九免费精品视频在线观看| 午夜免费看毛片| 亚洲成人精品一区| 丁香婷婷在线| 18成人在线| a91a精品视频在线观看| 亚洲图片第一页| 亚洲成人久久电影| 国产成人亚洲一区二区三区| 国产欧美精品aaaaaa片| 国产婷婷色一区二区三区在线| 国产激情久久久久久熟女老人av| 热久久美女精品天天吊色| 亚洲国产一成人久久精品| 成年人的黄色片| 91.麻豆视频| 浪潮色综合久久天堂| 国产成a人亚洲精v品在线观看| 国产女人水真多18毛片18精品视频| 亚洲国产精品国自产拍久久|