精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

好吊妞国产欧美日韩免费观看网站| 韩国av免费在线| 成人羞羞视频在线看网址| 欧美精品第一页| www.日本少妇| 国产一级二级三级在线观看| 国产一区二区精品久久| 91精品国产色综合久久不卡98口| 东京热无码av男人的天堂| 久久9999免费视频| 色爱区综合激月婷婷| 黄黄视频在线观看| 牛牛影视精品影视| 国产毛片精品视频| 日本视频久久久| 欧美黑人一级片| 精品美女久久久| 欧美va在线播放| 亚洲欧美日韩一级| 人成在线免费网站| 日韩伦理一区二区三区| 国产精品一卡| 美女视频黄免费的亚洲男人天堂| 久久亚洲AV成人无码国产野外| 成人噜噜噜噜| 欧洲精品在线观看| 少妇人妻在线视频| 日本一级理论片在线大全| 中文字幕av在线一区二区三区| 精品国产免费久久久久久尖叫| 一级黄色片在线播放| 嫩草成人www欧美| 欧美疯狂xxxx大交乱88av| 成年人在线免费看片| 日韩美女精品| 亚洲成人黄色在线| 少妇高潮一69aⅹ| 伊人久久大香| 欧美天堂亚洲电影院在线播放| 欧美日韩亚洲一| 白浆视频在线观看| 亚洲一区二区精品久久av| 香蕉视频免费版| 成人福利在线观看视频| 中文字幕亚洲一区二区va在线| 欧美一区二区福利| 日韩国产福利| 99国产一区二区三精品乱码| 国产精品一区在线播放| 亚洲精品一级片| 国产91丝袜在线播放0| 亚洲va国产va天堂va久久| 一区二区日韩在线观看| 美女免费视频一区二区| 国产精品视频一区国模私拍| 国产精品露脸视频| 久久机这里只有精品| 国产日韩欧美中文在线播放| 中文字幕精品无码亚| 美女网站一区二区| 91精品在线一区| 99久久婷婷国产一区二区三区| 久久91精品久久久久久秒播| 色一区在线观看| 久久视频免费观看| 在线观看日本黄色| 91亚洲国产高清| 久久精品美女视频网站| 三级影片在线观看| 真实国产乱子伦精品一区二区三区| 久久精品2019中文字幕| 欧美三根一起进三p| 欧美精品网站| 91wwwcom在线观看| 波多野结衣电车痴汉| 麻豆久久久久久| 91在线免费网站| 六月婷婷中文字幕| 久久久午夜精品| 亚洲最大免费| 日韩特级毛片| 日韩欧美国产骚| 亚洲xxx在线观看| 亚洲网一区二区三区| 亚洲国产婷婷香蕉久久久久久| 泷泽萝拉在线播放| 97精品中文字幕| 久久久免费精品视频| 亚洲欧美另类在线视频| 国内精品伊人久久久久av影院| 99精品在线直播| 色就是色亚洲色图| 最好看的中文字幕久久| 黄色大片中文字幕| 另类一区二区| 亚洲精品在线观| 久久久久久国产免费a片| 欧美 日韩 国产 一区| 欧美一级bbbbb性bbbb喷潮片| 97成人免费视频| 99精品一区二区| 一区视频二区视频| 国产白浆在线免费观看| 欧美日韩久久久| 国产精品入口麻豆| 久久久久亚洲| 国产成人精品国内自产拍免费看| 国产男女无套免费网站| 久久久精品中文字幕麻豆发布| 九九热r在线视频精品| 国产精品视频白浆免费视频| 国产肥老妇视频| 国产午夜精品久久| 久久精品xxx| 国产精品无码久久久久| 日韩精品在线观看一区二区| 久草网站在线观看| 久久er99精品| 日本高清不卡三区| ****av在线网毛片| 91精品国产一区二区三区| 人妻一区二区视频| 一区二区三区四区五区在线 | 不卡av免费观看| 欧美日韩在线播放一区| 我和岳m愉情xxxⅹ视频| 尹人成人综合网| 91亚洲精品久久久久久久久久久久| 黄网在线观看| 欧美日韩免费在线观看| 少妇搡bbbb搡bbb搡打电话| 66久久国产| 成人综合网网址| 91伦理视频在线观看| 色综合久久久久| 三级黄色片网站| 136国产福利精品导航网址| 成人免费观看网站| 成人影院在线看| 这里是久久伊人| 久久人妻无码aⅴ毛片a片app| 青青青爽久久午夜综合久久午夜 | 偷拍自拍在线视频| 亚洲国产精品久久艾草纯爱| 美女被爆操网站| 欧美日韩视频| 肥熟一91porny丨九色丨| 宅男网站在线免费观看| 日韩免费高清视频| 久草视频中文在线| 成人网男人的天堂| 极品美女扒开粉嫩小泬| 欧美午夜18电影| 2018中文字幕一区二区三区| 视频一区二区三区国产| yiren22亚洲综合伊人22| 国产精品婷婷午夜在线观看| 男女男精品视频站| 日本电影一区二区| 国产裸体写真av一区二区| 日本在线免费| 日韩欧美在线不卡| 国产精品白嫩白嫩大学美女| 国产麻豆成人传媒免费观看| 97干在线视频| 日韩欧美在线精品| 国产精品久久91| 日本福利专区在线观看| 日韩一区二区精品葵司在线 | 亚洲精品网址| 99久久精品免费看国产一区二区三区 | 97久久精品人人做人人爽| 欧美 日本 亚洲| 欧美系列电影免费观看| 亚洲一区二区三区777| 2021中文字幕在线| 亚洲人成电影网站色…| 国产三级三级在线观看| 五月婷婷久久综合| www久久久久久久| 国产一区二区不卡老阿姨| 日本a在线免费观看| 日本激情一区| 国产精品久久久久久久久婷婷 | 精品视频在线免费看| 中文字幕av久久爽av| 99视频国产精品| www午夜视频| 国产主播一区| 日韩欧美国产二区| 日韩区欧美区| 国产成人精品免费视频| 性直播体位视频在线观看| 亚洲精品久久久久中文字幕二区 | 国产激情一区二区三区四区| 免费看又黄又无码的网站| 成人三级视频| 亚洲视频资源在线| 又大又硬又爽免费视频| 精品一区二区三| 国产精品日韩一区二区免费视频| 午夜日韩成人影院| 欧美精品久久久久a| 色的视频在线免费看| 亚洲精品国产精品自产a区红杏吧| 一本到在线视频| 日韩欧美大尺度| 久久精品国产亚洲AV无码麻豆| 国产精品视频在线看| 又黄又爽的网站| 国产精品18久久久久久久久| 亚洲一区日韩精品| 国产精品嫩草99av在线| 青青草免费在线视频观看| 九九热精品视频在线观看| 国产精品theporn88| 亚洲欧洲专区| 国产精品久久久999| 在线免费看h| 高清在线视频日韩欧美| 色yeye免费人成网站在线观看| 最近的2019中文字幕免费一页| 深夜福利在线观看直播| 精品欧美一区二区三区精品久久| 在线观看国产一区二区三区| 一本一道久久a久久精品 | 2019中文字幕在线视频| 亚洲精选中文字幕| 神马久久久久| 日韩av一区二区在线| 亚洲va久久久噜噜噜无码久久| 欧美另类久久久品| 一级特黄aaa| 欧美日韩你懂的| 真实的国产乱xxxx在线91| 日韩欧美在线视频免费观看| 午夜精品三级久久久有码| 亚洲国产wwwccc36天堂| 国产精品成人网站| 午夜亚洲福利老司机| 日本污视频在线观看| 亚洲国产乱码最新视频| 久久免费视频99| 亚洲国产视频直播| 久久精品视频国产| 亚洲图片一区二区| 日韩经典在线观看| 亚洲1区2区3区4区| 在线能看的av| 在线视频一区二区免费| 国产精品xxxxxx| 欧美日韩国产综合久久| 超碰10000| www在线免费观看视频| 日韩一区二区三区国产| 毛片网站在线免费观看| 欧美另类极品videosbest最新版本| 中文字幕有码在线视频| 欧美精品xxx| 无码小电影在线观看网站免费 | 国产卡一卡二在线| 久久久久久久久久久妇女| 日韩一级特黄毛片| 国产一区二区你懂的| 成人黄色一区二区| 久久99精品国产.久久久久久| 91性高潮久久久久久久| 国v精品久久久网| 亚洲第一页av| 国产精品久久久一区麻豆最新章节| 小泽玛利亚一区二区免费| 亚洲综合久久av| 欧美精品韩国精品| 欧美人伦禁忌dvd放荡欲情| www.色亚洲| 日韩高清a**址| 婷婷免费在线视频| 欧美激情精品久久久久| 欧美成a人片在线观看久| 国产综合香蕉五月婷在线| 91精品国产自产在线丝袜啪| 久久久久一区二区| 99欧美视频| 成 年 人 黄 色 大 片大 全| 日韩成人一区二区三区在线观看| 女王人厕视频2ⅴk| 久久一日本道色综合| 婷婷久久综合网| 色婷婷综合久久久中文字幕| 国产精品无码AV| 亚洲欧美国产精品| 粗大黑人巨茎大战欧美成人| 4438全国亚洲精品在线观看视频| 国产亚洲人成a在线v网站| 国产亚洲情侣一区二区无| 欧美3p在线观看| 日本欧美黄色片| 国产精品18久久久久久久久久久久 | 精品国产拍在线观看| 欧美aa在线| 99九九视频| 99九九热只有国产精品| 777米奇影视第四色| 精品一区二区三区影院在线午夜| 给我看免费高清在线观看| 亚洲四区在线观看| 中文字幕一区在线播放| 精品国产一区二区精华| 日本三级视频在线观看| 日韩av大片免费看| 一区二区三区免费在线| 国产一区美女在线| 亚洲永久精品ww.7491进入| 一区二区三区在线观看视频| av手机天堂网| 日韩成人在线视频观看| a黄色片在线观看| 国产主播喷水一区二区| 国产99亚洲| 日本免费不卡一区二区| 成人午夜激情在线| 天天天天天天天天操| 欧美午夜片在线观看| 欧美日韩在线精品一区二区三区激情综| 欧美另类极品videosbestfree| 亚洲精品毛片| 亚洲欧洲日韩精品| 久久在线精品| 91精品国产自产| 欧美性高潮在线| 亚洲人成色777777精品音频| 久久久中文字幕| 91嫩草精品| 久草视频这里只有精品| 国产剧情一区二区三区| 亚洲伦理一区二区三区| 欧美老年两性高潮| 成人在线观看亚洲| 91精品久久久久久蜜桃| 图片区亚洲欧美小说区| 亚洲第一成肉网| 亚洲日本欧美天堂| www日本视频| 久久久久中文字幕2018| 北条麻妃在线一区二区免费播放| 国内少妇毛片视频| 不卡一区二区在线| 日本污视频在线观看| 亚洲国产精品成人av| 国模精品视频| 欧美日韩国产精品一区二区| 久久尤物视频| 日本成人免费在线观看 | 亚洲视频免费在线观看| 国产乱淫片视频| 欧美黄色成人网| 欧美激情极品| www.天天射.com| 亚洲欧美偷拍三级| 人妻精品一区二区三区| 日本成人激情视频| 色呦哟—国产精品| 五月花丁香婷婷| 亚洲午夜激情网页| 少妇性bbb搡bbb爽爽爽欧美| 国产精品久久综合av爱欲tv| 四季av在线一区二区三区| 欧美日韩一区二区区| 天天综合色天天| 国产经典自拍视频在线观看| 成人精品视频99在线观看免费| 国产一区亚洲| 久操视频免费看| 91麻豆精品国产自产在线观看一区| 国语对白在线刺激| 欧美亚洲爱爱另类综合| 韩日av一区二区| 精品欧美一区二区三区免费观看 | 91精选在线观看| 国产99在线| 一区二区在线中文字幕电影视频| 国产成人av一区二区三区在线观看| 成人毛片18女人毛片| 久久精品国产成人| 极品一区美女高清| 邪恶网站在线观看| 亚洲成av人影院在线观看网| 国产系列在线观看| 国产91色在线|亚洲| 日韩激情中文字幕| 国产一级视频在线播放| 中文字幕亚洲第一| 久久精品色综合| 视频二区在线播放| 午夜精品123| 超碰在线网址| 日韩精品第一页| av亚洲精华国产精华精| 国产精品嫩草影院桃色| 欧美在线视频a|