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

OpenHarmony BLE藍(lán)牙連接

系統(tǒng) OpenHarmony
這里將介紹如何通過OpenHarmony提供的@ohos.bluetooth (藍(lán)牙接口)打開當(dāng)前設(shè)備的藍(lán)牙,關(guān)閉藍(lán)牙,以及連接BLE藍(lán)牙設(shè)備。

??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

OpenHarmony BLE藍(lán)牙設(shè)備連接

1、簡介

OpenHarmony藍(lán)牙模塊提供了基礎(chǔ)的傳統(tǒng)藍(lán)牙能力以及BLE的掃描、廣播等功能,這里將介紹如何通過OpenHarmony提供的@ohos.bluetooth (藍(lán)牙接口)打開當(dāng)前設(shè)備的藍(lán)牙,關(guān)閉藍(lán)牙,以及連接BLE藍(lán)牙設(shè)備。

2、設(shè)備與環(huán)境

  • 設(shè)備:九聯(lián)s905l3a機(jī)頂盒、開鴻智谷學(xué)生卡BLE藍(lán)牙設(shè)備
  • 系統(tǒng):OpenHarmony 3.2 beta2
  • SDK:9

演示視頻:??OpenHarmony BLE藍(lán)牙設(shè)備連接??

3、邏輯流程

OpenHarmony BLE藍(lán)牙連接-開源基礎(chǔ)軟件社區(qū)

首先機(jī)頂盒在開始的時(shí)候獲取藍(lán)牙相關(guān)權(quán)限,然后通過OpenHarmony提供的藍(lán)牙接口打開藍(lán)牙,接著訂閱發(fā)現(xiàn)BLE設(shè)備發(fā)現(xiàn)事件,然后通過OpenHarmony提供的藍(lán)牙接口開啟BLE設(shè)備掃描,當(dāng)發(fā)現(xiàn)到了BLE藍(lán)牙設(shè)備后,進(jìn)行上報(bào),BLE設(shè)備發(fā)現(xiàn)事件觸發(fā),獲取到來自BLE設(shè)備的廣播信息包,然后進(jìn)行BLE藍(lán)牙連接。

4、實(shí)現(xiàn)過程

(1)獲取藍(lán)牙相關(guān)權(quán)限

在使用藍(lán)牙接口之前,首先要讓設(shè)備獲取一下權(quán)限:

  • ohos.permission.USE_BLUETOOTH // 允許應(yīng)用查看藍(lán)牙的配置。
  • ohos.permission.DISCOVER_BLUETOOTH // 允許應(yīng)用配置本地藍(lán)牙,查找遠(yuǎn)端設(shè)備且與之配對(duì)連接。
  • ohos.permission.LOCATION // 允許應(yīng)用獲取設(shè)備位置信息。
  • ohos.permission.MANAGE_BLUETOOTH // 允許應(yīng)用配對(duì)藍(lán)牙設(shè)備,并對(duì)設(shè)備的電話簿或消息進(jìn)行訪問。

打開DevEco Studio 3.1.0.200,創(chuàng)建新的Stage項(xiàng)目,在項(xiàng)目中的module.json文件中添加相關(guān)權(quán)限:

"requestPermissions": [
{
"name": "ohos.permission.USE_BLUETOOTH",
"reason": "$string:grant_use_bluetooth",
"usedScene": {
"abilities": [
"MainAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.DISCOVER_BLUETOOTH",
"reason": "$string:grant_discovery_bluetooth",
"usedScene": {
"abilities": [
"MainAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.LOCATION",
"reason": "$string:grant_location",
"usedScene": {
"abilities": [
"MainAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.MANAGE_BLUETOOTH",
"reason": "$string:grant_manage_bluetooth",
"usedScene": {
"abilities": [
"MainAbility"
],
"when": "inuse"
}
}
]

(2)打開設(shè)備的藍(lán)牙

首先,通過調(diào)用 bluetooth.getState() 藍(lán)牙接口來獲取當(dāng)前設(shè)備藍(lán)牙是否打開,并設(shè)置藍(lán)牙開關(guān)的標(biāo)識(shí)位 isOn。

async aboutToAppear() {
// 等待獲取藍(lán)牙權(quán)限
await globalThis.abilityContext.requestPermissionsFromUser(['ohos.permission.USE_BLUETOOTH', 'ohos.permission.DISCOVER_BLUETOOTH', 'ohos.permission.LOCATION', 'ohos.permission.MANAGE_BLUETOOTH'])
logger.info(TAG, `獲取權(quán)限 grantPermission,requestPermissionsFromUser,PermissionRequestResult`)
// 獲取藍(lán)牙狀態(tài)
let state = bluetooth.getState()
// 判斷當(dāng)前設(shè)備藍(lán)牙是否打開
if (state === bluetooth.BluetoothState.STATE_ON) {
this.isOn = true
}
if (state === bluetooth.BluetoothState.STATE_OFF) {
this.isOn = false
}
}

如果當(dāng)前設(shè)備藍(lán)牙未打開,則通過調(diào)用 bluetooth.enableBluetooth() 藍(lán)牙接口來打開藍(lán)牙。

// 打開藍(lán)牙函數(shù)
initBluetooth() {
this.enable = bluetooth.enableBluetooth()
// 判斷藍(lán)牙是否成功打開
if(this.enable==true){
prompt.showToast({
message: 'Open bluetooth ' + this.enable,
duration: 2000,
});
}
}

(3)注冊(cè)發(fā)現(xiàn)BLE設(shè)備監(jiān)聽器

在設(shè)備打開藍(lán)牙之后,通過調(diào)用 bluetooth.BLE.on('BLEDeviceFind') 藍(lán)牙接口來訂閱BLE設(shè)備發(fā)現(xiàn)上報(bào)事件。該接口參數(shù)如下:

OpenHarmony BLE藍(lán)牙連接-開源基礎(chǔ)軟件社區(qū)

通過注冊(cè)發(fā)現(xiàn)BLE設(shè)備監(jiān)聽器,可以得到發(fā)現(xiàn)設(shè)備的集合,BLE設(shè)備的廣播包、地址、信號(hào)強(qiáng)度rssi,在這里發(fā)現(xiàn)獲取連接BLE設(shè)備名字的接口 getDeviceName 無法成功調(diào)用,所以自己通過解析廣播包來獲取設(shè)備名字。

// 訂閱BLE設(shè)備發(fā)現(xiàn)上報(bào)事件
// 獲取到的data包括BLE設(shè)備的廣播包、地址、信號(hào)強(qiáng)度rssi
bluetooth.BLE.on('BLEDeviceFind', (data) => {
logger.info(TAG, `enter on bluetoothBLEDeviceFind`)
logger.info("rgytl 開始掃描設(shè)備地址! 1")
if (data !== null && data.length > 0) {
logger.info("rgytl 開始掃描設(shè)備地址! 2")
if (this.discoveryBleList.indexOf(data[0]) === -1) {
// 把發(fā)現(xiàn)的設(shè)備地址存入列表
this.discoveryBleList.push(data[0].deviceId)
logger.info("rgytl ---- discoveryBleList = "+JSON.stringify(this.discoveryBleList))
// 讀取廣播包,解析廣播包,得到設(shè)備名字,并存入設(shè)備列表
var i = 0;
var x = data[0].data[i]
var y = data[0].data[i + 1]
while(y!=0x09 && i+x+2<data[0].data.byteLength){
i = i+x+1
x = data[0].data[i]
y = data[0].data[i+1]
}

let arr = data[0].data.slice(i+2,i+x+1)

var BLEName = ""
for(let j=0;j<arr.byteLength;j++){
BLEName+=String.fromCharCode(arr[j])
}
logger.info("rgytl ---- discoveryBleList = "+BLEName)
// 把通過廣播包解析的BLE設(shè)備名字存入設(shè)備名字列表
this.BleInfo.push(BLEName)
// 把發(fā)現(xiàn)的BLE設(shè)備信號(hào)存入設(shè)備信號(hào)強(qiáng)度列表
this.BleRssi.push(data[0].rssi)
logger.info("rgytl ---- discoveryBleList = "+data[0].rssi)
}
logger.info(TAG, `開啟掃描 discoveryBleList = ${JSON.stringify(this.discoveryBleList)}`)
}
})

(4)開啟BLE設(shè)備掃描

在完成訂閱BLE設(shè)備發(fā)現(xiàn)上報(bào)事件后,通過調(diào)用 bluetooth.BLE.startBLEScan 接口去開啟BLE設(shè)備掃描,通過該接口,可以對(duì)掃描BLE設(shè)備進(jìn)行過濾,可以過濾的參數(shù)有:BLE設(shè)備的地址、名字、以及服務(wù)的UUID等。

OpenHarmony BLE藍(lán)牙連接-開源基礎(chǔ)軟件社區(qū)

在這里,我設(shè)置只掃描包含我BLE設(shè)備名字的BLE設(shè)備,這樣子就不會(huì)說掃描到一大堆其他的BLE設(shè)備,影響使用,只需要開啟一次掃描和訂閱一次BLE設(shè)備發(fā)現(xiàn)上報(bào)事件就可以了,使用的時(shí)候只要沒有關(guān)閉,就不需要重復(fù)調(diào)用。

// 設(shè)置藍(lán)牙BLE掃描模式(根據(jù)名字掃描)
bluetooth.BLE.startBLEScan(
[{
deviceId: null,
name: "ble slave test",
serviceUuid: null
}],
{
interval: 0,
dutyMode: bluetooth.ScanDuty.SCAN_MODE_LOW_POWER,
matchMode: bluetooth.MatchMode.MATCH_MODE_AGGRESSIVE,
}
)

(5)連接BLE設(shè)備

在掃描到BLE設(shè)備之后,可以通過 on(‘BLEConnectionStateChange’) 來訂閱獲取BLE設(shè)備的連接狀態(tài)變化事件,在使用該接口之前,要先通過 bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX') 接口創(chuàng)建一個(gè)可使用的GattClientDevice實(shí)例。

OpenHarmony BLE藍(lán)牙連接-開源基礎(chǔ)軟件社區(qū)

// 訂閱BEL狀態(tài)變化
if(this.BleOnflag){
// 只創(chuàng)建一個(gè)GattClient對(duì)象
this.BleOnflag = false
this.BLEDevice = bluetooth.BLE.createGattClientDevice(item);
// 訂閱獲取BLE設(shè)備的連接狀態(tài)變化事件
this.BLEDevice.on('BLEConnectionStateChange', (data) => {
console.log('bluetooth connectState state changed');
let connectState = data.state;
// 根據(jù)不通的連接狀態(tài),提示不同的信息
if(JSON.stringify(connectState) == 0){
logger.info(`connectState = ${JSON.stringify(connectState)},斷開連接`)
prompt.showToast({
message: '斷開連接',
duration: 2000,
});
} else if(JSON.stringify(connectState) == 2){
logger.info(`connectState = ${JSON.stringify(connectState)},連接成功`)
prompt.showToast({
message: '連接成功',
duration: 2000,
});
} else if(JSON.stringify(connectState) == 1){
logger.info(`connectState = ${JSON.stringify(connectState)},正在連接`)
} else {
logger.info(`connectState = ${JSON.stringify(connectState)},正在斷連`)
}
logger.info(`connectState = ${JSON.stringify(connectState)}`);
})
}

在前面通過 bluetooth.BLE.createGattClientDevice(item) 創(chuàng)建一個(gè)GattClientDevice實(shí)例 BLEDevice 后,我們可以通過該實(shí)例去調(diào)用 connect() 方法連接BLE設(shè)備。注意,GattClientDevice實(shí)例 只需要?jiǎng)?chuàng)建一個(gè)就可以。

OpenHarmony BLE藍(lán)牙連接-開源基礎(chǔ)軟件社區(qū)

// 連接藍(lán)牙
let BLEConnect = this.BLEDevice.connect()
// 如果連接成功,則把BLE設(shè)備存入連接成功列表
if(BLEConnect){
this.deviceBleList.push(item)
}

(6)結(jié)尾處理

當(dāng)不連接BLE設(shè)備的時(shí)候,要記得關(guān)閉BLE設(shè)備掃描,取消訂閱設(shè)備發(fā)現(xiàn)事件。

取消BLE設(shè)備連接,通過之前創(chuàng)建的GattClientDevice實(shí)例 BLEDevice 調(diào)用 disconnect() 方法斷開連接BLE設(shè)備。

Button("斷開")
.alignSelf(ItemAlign.Center)
.onClick(() => {
AlertDialog.show({
title: $r('app.string.disconnect'),
message: '此操作將會(huì)斷開該設(shè)備的連接',
primaryButton: {
value: $r('app.string.cancel'),
action: () => {
}
},
secondaryButton: {
value: $r('app.string.confirm'),
action: () => {
// 斷開連接BLE設(shè)備
let BLEdisConnect = this.BLEDevice.disconnect()
if(BLEdisConnect){
logger.info(`connectState BLEdisConnect = ${JSON.stringify(BLEdisConnect)},斷開連接`)
// 移出BLE設(shè)備連接列表
this.deviceBleList.pop(item)
}
}
}
})
})

在斷開連接、關(guān)閉藍(lán)牙之后,可以通過 off(‘connectStateChange’) 取消訂閱BLE連接狀態(tài)變化事件、bluetooth.BLE.stopBLEScan 停止BLE掃描、以及 bluetooth.BLE.off(‘BLEDeviceFind’) 取消訂閱BLE設(shè)備發(fā)現(xiàn)上報(bào)事件,最后通過 bluetooth.disableBluetooth() 關(guān)閉藍(lán)牙。

.onChange((isOn: boolean) => {
if (isOn) {
this.isOn = true
this.initBluetooth()
} else {
this.isOn = false
bluetooth.BLE.off('BLEDeviceFind',()=>{
logger.info("rgytl 取消BLE設(shè)備發(fā)現(xiàn)訂閱!")
})
bluetooth.BLE.stopBLEScan()
this.disable = bluetooth.disableBluetooth()
this.discoveryList = []
this.BleInfo = []
this.BleRssi = []
if(this.disable==true){
prompt.showToast({
message: 'Close bluetooth ' + this.disable,
duration: 2000,
});
}
}
})
5、參考文檔

??OpenAtom OpenHarmony 藍(lán)牙??

??應(yīng)用權(quán)限列表??

??OpenHarmony Gitee 藍(lán)牙??

文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載

 ??https://ost.51cto.com/resource/2700??

??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-11-17 15:26:06

低功耗藍(lán)牙鴻蒙

2023-03-08 21:30:33

2015-09-22 11:04:24

藍(lán)牙4.0開發(fā)

2022-01-25 16:54:14

BLE操作系統(tǒng)鴻蒙

2021-10-30 07:55:00

BLE 藍(lán)牙開發(fā)

2022-06-07 10:40:05

藍(lán)牙鴻蒙

2023-09-19 15:58:13

Zigbee藍(lán)牙

2015-02-27 16:03:26

Android源碼Bluetooth_4BLE藍(lán)牙通信

2023-10-08 15:19:40

2022-09-06 15:25:22

Wifi設(shè)備開發(fā)

2022-01-12 14:45:26

鴻蒙HarmonyOS應(yīng)用

2010-01-08 15:35:30

Ubuntu連接

2021-12-28 16:06:15

鴻蒙HarmonyOS應(yīng)用

2010-02-07 13:31:49

Ubuntu連接

2023-09-20 11:46:54

藍(lán)牙物聯(lián)網(wǎng)IOT

2021-03-16 16:07:37

物聯(lián)網(wǎng)藍(lán)牙連接IoT

2022-08-12 19:13:07

etswifi連接操作

2021-11-12 23:44:28

Windows 10Windows微軟

2020-06-22 10:21:44

物聯(lián)網(wǎng)藍(lán)牙技術(shù)

2022-05-18 14:21:18

漏洞藍(lán)牙低功耗藍(lán)牙
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

深夜福利亚洲| 香蕉视频国产在线观看| 国产农村妇女毛片精品久久莱园子| 亚洲福利在线播放| 成人在线免费播放视频| 日本韩国在线视频爽| 国产成a人无v码亚洲福利| 91爱视频在线| 潘金莲一级黄色片| 欧美色图五月天| 欧美日韩电影一区| 日韩精品视频在线观看视频| 国产视频精品久久| 国产a视频精品免费观看| 日韩美女写真福利在线观看| 小泽玛利亚一区| 日韩极品在线| 欧美一卡二卡在线| 亚洲第一中文av| 中文在线字幕免费观看| 欧美国产1区2区| 高清国语自产拍免费一区二区三区| 波多野结衣家庭主妇| 欧美视频网站| 日韩在线观看免费高清| 五十路六十路七十路熟婆| 日韩午夜电影免费看| 岛国视频午夜一区免费在线观看| 自拍偷拍一区二区三区| 久草福利在线| 97国产一区二区| 91亚洲国产成人精品性色| 无码人妻精品一区二区50| 欧美精品日韩| 色哟哟亚洲精品一区二区| 日本一级片在线播放| 粉嫩av国产一区二区三区| 在线观看视频一区二区欧美日韩| 日韩视频在线视频| 丝袜美女在线观看| 亚洲欧洲性图库| 神马影院一区二区| 巨骚激情综合| 26uuu精品一区二区在线观看| 亚洲自拍偷拍区| 一本色道久久综合亚洲| 免费看欧美女人艹b| 欧洲精品久久久| 日韩精品在线免费看| 欧美黄色aaaa| 欧美精品生活片| www.av免费| 婷婷久久综合| 精品国产一区久久久| 色婷婷国产精品免| av永久不卡| 国产亚洲日本欧美韩国| mm131丰满少妇人体欣赏图| 久久动漫网址| 亚洲精品狠狠操| 魔女鞋交玉足榨精调教| 网红女主播少妇精品视频| 亚洲国内精品在线| 亚洲最大的黄色网| 亚洲欧美成人vr| 国产小视频国产精品| 中文字幕精品亚洲| 午夜av一区| 欧美成人精品影院| 日本三级中文字幕| 亚洲影音一区| 国产精品成人免费电影| 国产精品尤物视频| 麻豆国产精品777777在线| 国产在线不卡精品| av在线资源观看| 国产 日韩 欧美大片| 久久人人九九| 二区在线观看| 亚洲精品水蜜桃| 黄色三级中文字幕| 成人免费观看在线观看| 色一情一乱一乱一91av| 亚洲天堂网2018| 99re8这里有精品热视频8在线| 精品免费国产二区三区| 右手影院亚洲欧美| 日韩在线高清| 欧美极品少妇全裸体| 三级网站在线播放| 狠狠狠色丁香婷婷综合激情| 国产精品久久久久久久小唯西川| 青青草免费观看免费视频在线| 中文子幕无线码一区tr| 亚洲熟妇无码av在线播放| 亚洲最新无码中文字幕久久| 欧美私模裸体表演在线观看| 国产精品嫩草影视| 日韩最新在线| 另类色图亚洲色图| 亚洲天堂视频网站| 国产剧情一区二区三区| 精品伊人久久大线蕉色首页| 中文字幕日本在线观看| 亚洲福利一二三区| www午夜视频| 久久99精品国产自在现线| 日韩视频亚洲视频| 国产精品免费av一区二区| 毛片不卡一区二区| 久久精品女人的天堂av| 麻豆网站视频在线观看| 欧美午夜www高清视频| 国产亚洲视频一区| 蜜桃精品wwwmitaows| 粗暴蹂躏中文一区二区三区| 亚洲成熟少妇视频在线观看| 国产精品1024久久| 亚洲高清在线观看一区| 啊啊啊久久久| 日韩天堂在线观看| 男人的天堂av网| 99成人在线| 91色视频在线观看| 国产午夜在线观看| 天天综合网 天天综合色| 污污视频网站在线| 日韩av免费大片| 欧美亚洲成人xxx| 成人午夜精品福利免费| 综合色中文字幕| 欧美成人黄色网址| 视频一区在线观看| 91精品国产九九九久久久亚洲| 国产婷婷在线视频| 亚洲国产成人自拍| 狠狠操精品视频| 国产精东传媒成人av电影| 欧美www在线| 91亚洲视频在线观看| 欧美国产综合色视频| 免费国产成人av| 国产欧美一区| 国产精品久久久久久久av电影| 五月婷婷开心中文字幕| 亚洲一区二区精品3399| 中文字幕1区2区| 欧美另类女人| 爱情岛论坛亚洲入口| 在线观看中文| 91精品国产欧美一区二区18 | 日日av拍夜夜添久久免费| 亚洲国产精品va在线看黑人| 久久久久久天堂| 丁香婷婷综合网| 免费高清一区二区三区| 精品福利一区| 欧美一区二三区| 黄色片在线播放| 欧美亚洲综合另类| 中文字幕第69页| 麻豆精品在线播放| 中文字幕超清在线免费观看| 韩国三级成人在线| 欧美寡妇偷汉性猛交| 亚洲精品无码专区| 五月综合激情网| 成人免费网站黄| 美女视频黄 久久| www.午夜色| 天堂va在线高清一区| 国内偷自视频区视频综合 | 91精品国产自产观看在线| www.日韩欧美| www.爱爱.com| 午夜激情久久久| 午夜在线观看一区| 久久精品国产精品青草| 狠狠精品干练久久久无码中文字幕 | 涩涩视频免费看| 色噜噜狠狠色综合欧洲selulu| 免费黄色在线网址| 粉嫩蜜臀av国产精品网站| 欧美亚洲日本一区二区三区| 国产成人精品免费视| 国产精品影片在线观看| 日本h片在线| 亚洲精品美女久久久| 中文字幕视频免费观看| 亚洲精品成人天堂一二三| 一起草在线视频| 麻豆精品蜜桃视频网站| 免费一级特黄毛片| 欧美偷拍自拍| 国产精品久久久久久久免费大片 | 极品少妇一区二区三区| 日本不卡二区| 成人av动漫| 国产精品最新在线观看| 国产精品一区hongkong| 亚洲图片制服诱惑| 蜜桃视频在线观看www| 欧美日韩一区成人| 日本在线观看中文字幕| 国产精品成人一区二区三区夜夜夜| 日本性生活一级片| 精品一区二区三区在线播放视频| 少妇人妻大乳在线视频| 99九九热只有国产精品| 欧美日韩国产综合视频在线| 国产亚洲观看| 国产精品久久久久久久久久久不卡 | 一区二区激情视频| 国产7777777| 97成人超碰视| 亚洲av综合色区无码另类小说| 热久久国产精品| av网站在线观看不卡| 综合久久99| 一本一道久久久a久久久精品91 | 国产成人一区在线| 在线观看av日韩| 蜜桃av一区| 久久久久久久久久网| 中文一区一区三区免费在线观看| 少妇特黄a一区二区三区| 久久精品凹凸全集| 国产91精品一区二区绿帽| 先锋影音网一区二区| 国产成人精品久久久| 人在线成免费视频| 国内精品久久久久久久久| 呦呦在线视频| 久久影院模特热| 国产在线观看a视频| 尤物99国产成人精品视频| 女人天堂在线| 国产视频综合在线| 香蕉视频国产在线| 亚洲精品国产拍免费91在线| 人妻少妇精品无码专区久久| 日韩美女天天操| 亚洲AV无码精品自拍| 日韩色视频在线观看| 精品国产黄色片| 欧美一级二级三级蜜桃| 国产激情视频在线播放| 91精品国产综合久久久蜜臀图片| 国产精品高潮呻吟av| 欧美美女黄视频| 91丨porny丨在线中文 | 午夜宅男久久久| 北条麻妃在线观看| 麻豆精品网站| 老熟妇仑乱视频一区二区| 日本欧美一区二区| 久热精品在线播放| 激情文学综合插| 少妇性l交大片7724com| 国产91丝袜在线播放| 蜜桃色一区二区三区| 成人黄色综合网站| 右手影院亚洲欧美| 国产欧美日韩精品一区| 亚洲一二三精品| 亚洲男女毛片无遮挡| 久一区二区三区| 日韩欧美国产黄色| 一区二区乱子伦在线播放| 6080日韩午夜伦伦午夜伦| www.久久色| 国产视频一区在线| 欧美私人网站| 欧美精品激情在线观看| 蜜桃麻豆影像在线观看| 国产成人午夜视频网址| 日韩欧美三区| 国产丝袜不卡| 欧美午夜精品一区二区三区电影| 午夜啪啪福利视频| 日韩午夜在线电影| 午夜精品在线免费观看| 国产精品自在在线| 少妇欧美激情一区二区三区| 91丨九色丨国产丨porny| 成人一级片免费看| 亚洲国产cao| 最近中文字幕在线视频| 日韩欧美成人一区二区| 欧美视频综合| 久久国产精品视频| 厕沟全景美女厕沟精品| 成人精品久久久| 亚洲精华一区二区三区| 中文字幕久久综合| 99国产精品久久久久久久 | 国产91丝袜在线观看| 国产人妻大战黑人20p| 亚洲综合一区二区三区| 亚洲欧美日韩一区二区三区四区| 日韩视频一区在线观看| 欧美女优在线观看| 欧美放荡办公室videos4k| 澳门av一区二区三区| 国产乱码精品一区二区三区日韩精品| 欧美视频免费| 国产极品尤物在线| 狠狠色丁香婷婷综合| 日本一级免费视频| 午夜在线成人av| av在线免费在线观看| 色爱精品视频一区| 日本欧美日韩| 国产一区高清视频| 欧美女激情福利| 中国黄色片免费看| 久久日一线二线三线suv| 欧美成人三级视频| 欧美日韩dvd在线观看| 日韩国产福利| 午夜精品蜜臀一区二区三区免费| www久久久| 伊人色综合影院| 日本特黄久久久高潮| 精品黑人一区二区三区观看时间| 亚洲精品一二三四区| 国产精品国产一区二区三区四区| 亚洲精品日韩欧美| 免费在线小视频| 国产精品国产亚洲精品看不卡15 | 国产一区调教| av一区二区三区免费观看| 紧缚捆绑精品一区二区| 手机看片福利视频| 色老综合老女人久久久| 日本福利午夜视频在线| 欧美亚洲国产精品| 神马久久影院| 国产中文字幕免费观看| 波波电影院一区二区三区| 国产精品成人免费观看| 欧美一卡在线观看| caopen在线视频| 亚洲精品日韩激情在线电影| 亚洲精品a级片| 91免费视频污| 亚洲人成小说网站色在线 | 欧美日韩视频免费在线观看| 奇米色一区二区三区四区| 欧美午夜激情影院| 欧美日韩亚洲丝袜制服| 五月天婷婷在线视频| 成人欧美一区二区三区黑人孕妇| 97精品国产| 日本人dh亚洲人ⅹxx| 亚洲曰韩产成在线| 乱色精品无码一区二区国产盗| 97国产suv精品一区二区62| 青青草原在线亚洲| 国产欧美高清在线| 国产精品免费久久| 99久久夜色精品国产亚洲| 欧美精品一区三区| 99a精品视频在线观看| 日韩中文字幕三区| 国产日本欧洲亚洲| 国产精品女同一区二区| 欧美精品在线网站| 久久电影在线| 欧美三级理论片| 国产精品国产三级国产专播品爱网 | 国产精品xxxx| 奶水喷射视频一区| 懂色av蜜臀av粉嫩av永久| 欧美一区二区三区四区视频| 五月婷婷视频在线观看| 久久av一区二区| 蜜臀av一区二区三区| 青娱乐av在线| 亚洲精品少妇网址| 99tv成人影院| 玩弄中年熟妇正在播放| 国产女人18毛片水真多成人如厕| 国产日韩欧美一区二区东京热| 欧美激情a在线| 久久av资源| 一级黄色大片免费看| 色婷婷一区二区| 搞黄网站在线观看| 久久综合精品一区| 韩国av一区二区| 男人午夜免费视频| 精品国产一区二区三区久久久| 涩爱av色老久久精品偷偷鲁| 无码aⅴ精品一区二区三区浪潮| 国产精品欧美精品| 污视频在线免费观看| 国产自摸综合网| 免费在线日韩av| 免费中文字幕在线观看|