wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4634|回復: 4
收起左側

基于手機藍牙控制小車51單片機手機程序

[復制鏈接]
ID:113175 發(fā)表于 2016-4-9 21:22 | 顯示全部樓層 |閱讀模式
下面開始介紹Android手機端控制程序的編寫:
首先打開Eclipse,當然之前的Java開發(fā)環(huán)境和安卓開發(fā)工具自己得先配置好,這里就不多說了,網(wǎng)上教程一大摞。
然后新建一個Android項目,修改布局文件main.xml,代碼如下:
[html] view plain copy
<?xml version="1.0" encoding="utf-8"?>  
<AbsoluteLayout  
android:id="@+id/widget0"  
android:layout_width="fill_parent"  
android:layout_height="fill_parent"  
xmlns:android="http://schemas.android.com/apk/res/android"  
>  
<Button  
android:id="@+id/btnF"  
android:layout_width="100px"  
android:layout_height="60px"  
android:text="前進"  
android:layout_x="130px"  
android:layout_y="62px"  
>  
</Button>  
<Button  
android:id="@+id/btnL"  
android:layout_width="100px"  
android:layout_height="60px"  
android:text="左轉"  
android:layout_x="20px"  
android:layout_y="152px"  
>  
</Button>  
<Button  
android:id="@+id/btnR"  
android:layout_width="100px"  
android:layout_height="60px"  
android:text="右轉"  
android:layout_x="240px"  
android:layout_y="152px"  
>  
</Button>  
<Button  
android:id="@+id/btnB"  
android:layout_width="100px"  
android:layout_height="60px"  
android:text="后退"  
android:layout_x="130px"  
android:layout_y="242px"  
>  
</Button>  
<Button  
android:id="@+id/btnS"  
android:layout_width="100px"  
android:layout_height="60px"  
android:text="停止"  
android:layout_x="130px"  
android:layout_y="152px"  
>  
</Button>  
</AbsoluteLayout>
這個布局文件的效果就是如視頻中所示的手機操作界面。
然后是權限聲明,這一步不能少,否則將無法使用安卓手機的藍牙功能。
權限聲明如下:
打開AndroidManifest.xml文件,修改代碼如下:
[html] view plain copy
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
package="com.ThinBTClient.www"  
android:versionCode="1"  
android:versionName="1.0">  

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />  
<uses-permission android:name="android.permission.BLUETOOTH" />  
<application android:icon="@drawable/icon" android:label="@string/app_name">  
<activity android:name=".ThinBTClient"  
android:label="@string/app_name">  
<intent-filter>  
<action android:name="android.intent.action.MAIN" />  
<category android:name="android.intent.category.LAUNCHER" />  
</intent-filter>  
</activity>  

</application>  
</manifest>
其中紅色、加粗部分就是要添加的權限聲明。
然后編寫Activity中的執(zhí)行代碼,這些代碼的作用就是發(fā)送指令,控制小車的運動。
代碼如下:
[java] view plain copy
package com.ThinBTClient.www;  

import android.app.Activity;  
import android.os.Bundle;  
import java.io.IOException;  

import java.io.OutputStream;  
import java.util.UUID;  

import android.app.Activity;  

import android.bluetooth.BluetoothAdapter;  

import android.bluetooth.BluetoothDevice;  

import android.bluetooth.BluetoothSocket;  
import android.content.DialogInterface;  
import android.content.DialogInterface.OnClickListener;  

import android.os.Bundle;  
import android.provider.ContactsContract.CommonDataKinds.Event;  

import android.util.Log;  
import android.view.MotionEvent;  
import android.view.View;  

import android.widget.Button;  
import android.widget.Toast;  
public class ThinBTClient extends Activity {  
private static final String TAG = "THINBTCLIENT";  

private static final boolean D = true;  

private BluetoothAdapter mBluetoothAdapter = null;  

private BluetoothSocket btSocket = null;  

private OutputStream outStream = null;  
Button mButtonF;  

Button mButtonB;  
Button mButtonL;  
Button mButtonR;  
Button mButtonS;  

private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");  


private static String address = "00:11:03:21:00:43"; // <==要連接的藍牙設備MAC地址  


/** Called when the activity is first created. */  

@Override  

public void onCreate(Bundle savedInstanceState) {  

super.onCreate(savedInstanceState);  
setContentView(R.layout.main);  

//前進  
mButtonF=(Button)findViewById(R.id.btnF);  
mButtonF.setOnTouchListener(new Button.OnTouchListener(){  

@Override  
public boolean onTouch(View v, MotionEvent event) {  
// TODO Auto-generated method stub  
String message;  
byte[] msgBuffer;  
int action = event.getAction();  
switch(action)  
{  
case MotionEvent.ACTION_DOWN:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "1";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  

case MotionEvent.ACTION_UP:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "0";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  
}  
return false;  
}  


});  
//后退  
mButtonB=(Button)findViewById(R.id.btnB);  
mButtonB.setOnTouchListener(new Button.OnTouchListener(){  


@Override  
public boolean onTouch(View v, MotionEvent event) {  
// TODO Auto-generated method stub  
String message;  
byte[] msgBuffer;  
int action = event.getAction();  
switch(action)  
{  
case MotionEvent.ACTION_DOWN:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "3";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  

case MotionEvent.ACTION_UP:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "0";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  
}  

return false;  
}  


});  
//左轉  
mButtonL=(Button)findViewById(R.id.btnL);  
mButtonL.setOnTouchListener(new Button.OnTouchListener(){  

@Override  
public boolean onTouch(View v, MotionEvent event) {  
// TODO Auto-generated method stub  
String message;  
byte[] msgBuffer;  
int action = event.getAction();  
switch(action)  
{  
case MotionEvent.ACTION_DOWN:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "2";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  

case MotionEvent.ACTION_UP:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "0";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  
}  

return false;  

}  
});  
//右轉  
mButtonR=(Button)findViewById(R.id.btnR);  
mButtonR.setOnTouchListener(new Button.OnTouchListener(){  

@Override  
public boolean onTouch(View v, MotionEvent event) {  
// TODO Auto-generated method stub  
String message;  
byte[] msgBuffer;  
int action = event.getAction();  
switch(action)  
{  
case MotionEvent.ACTION_DOWN:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "4";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  

case MotionEvent.ACTION_UP:  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


message = "0";  

msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
break;  
}  

return false;  

}  


});  

//停止  
mButtonS=(Button)findViewById(R.id.btnS);  
mButtonS.setOnTouchListener(new Button.OnTouchListener(){  

@Override  
public boolean onTouch(View v, MotionEvent event) {  
// TODO Auto-generated method stub  
if(event.getAction()==MotionEvent.ACTION_DOWN)  
try {  
outStream = btSocket.getOutputStream();  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);  
}  


String message = "0";  

byte[] msgBuffer = message.getBytes();  

try {  
outStream.write(msgBuffer);  

} catch (IOException e) {  
Log.e(TAG, "ON RESUME: Exception during write.", e);  
}  
return false;  
}  


});  

if (D)  
Log.e(TAG, "+++ ON CREATE +++");  
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  

if (mBluetoothAdapter == null) {  
Toast.makeText(this, "Bluetooth is not available.", Toast.LENGTH_LONG).show();  
finish();  
return;  
}  


if (!mBluetoothAdapter.isEnabled()) {  
Toast.makeText(this, "Please enable your Bluetooth and re-run this program.", Toast.LENGTH_LONG).show();  
finish();  
return;  

}  


if (D)  
Log.e(TAG, "+++ DONE IN ON CREATE, GOT LOCAL BT ADAPTER +++");  

}  


@Override  

public void onStart() {  

super.onStart();  

if (D) Log.e(TAG, "++ ON START ++");  
}  


@Override  

public void onResume() {  

super.onResume();  
if (D) {  
Log.e(TAG, "+ ON RESUME +");  
Log.e(TAG, "+ ABOUT TO ATTEMPT CLIENT CONNECT +");  

}  

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);  

try {  

btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);  

} catch (IOException e) {  

Log.e(TAG, "ON RESUME: Socket creation failed.", e);  

}  
mBluetoothAdapter.cancelDiscovery();  
try {  

btSocket.connect();  

Log.e(TAG, "ON RESUME: BT connection established, data transfer link open.");  

} catch (IOException e) {  

try {  
btSocket.close();  

} catch (IOException e2) {  

Log .e(TAG,"ON RESUME: Unable to close socket during connection failure", e2);  
}  

}  


// Create a data stream so we can talk to server.  

if (D)  
Log.e(TAG, "+ ABOUT TO SAY SOMETHING TO SERVER +");  
/* try {
outStream = btSocket.getOutputStream();

} catch (IOException e) {
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);
}


String message = "1";

byte[] msgBuffer = message.getBytes();

try {
outStream.write(msgBuffer);

} catch (IOException e) {
Log.e(TAG, "ON RESUME: Exception during write.", e);
}
*/  

}  


@Override  

public void onPause() {  

super.onPause();  


if (D)  
Log.e(TAG, "- ON PAUSE -");  
if (outStream != null) {  
try {  
outStream.flush();  
} catch (IOException e) {  
Log.e(TAG, "ON PAUSE: Couldn't flush output stream.", e);  
}  

}  


try {  
btSocket.close();  
} catch (IOException e2) {  
Log.e(TAG, "ON PAUSE: Unable to close socket.", e2);  
}  

}  


@Override  

public void onStop() {  

super.onStop();  

if (D)Log.e(TAG, "-- ON STOP --");  

}  


@Override  

public void onDestroy() {  

super.onDestroy();  

if (D) Log.e(TAG, "--- ON DESTROY ---");  

}  

}

回復

使用道具 舉報

ID:1 發(fā)表于 2016-4-9 21:49 | 顯示全部樓層
這個好像不完整吧還達不到加100分的條件 最好傳個壓縮包 51單片機程序呢?
回復

使用道具 舉報

ID:105247 發(fā)表于 2016-5-21 00:24 | 顯示全部樓層
樓主要是發(fā)個工程包太漂亮了,不過學習了
回復

使用道具 舉報

ID:100515 發(fā)表于 2017-3-20 18:26 | 顯示全部樓層
額,這個是從別人那里copy過來的吧.....  
回復

使用道具 舉報

ID:312153 發(fā)表于 2025-5-22 10:17 | 顯示全部樓層
這需要一點不是一般的基礎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
中文在线观看免费| 精品国精品国产| 久久麻豆一区二区| 国产一区二区女| 久久se精品一区精品二区| 性感少妇一区| 日日夜夜精品免费视频| 亚洲免费中文| 天堂一区二区在线| 久久精品久久久精品美女| 日日夜夜精品视频天天综合网| 久久激情久久| 蜜臀久久99精品久久久久宅男 | 欧日韩一区二区三区| 欧美精品欧美精品| 亚洲黄色一区二区三区| 亚洲精品永久www嫩草| 日韩视频在线免费播放| 蜜桃网站在线观看| av观看免费在线| 在线播放黄色av| 欧美激情 亚洲| 国产传媒视频在线| 日本免费观看视| 在线观看国产精品视频| 国产尤物视频在线观看| 男人天堂手机在线观看| 人与人69性欧美三人交| 免费看岛国视频在线观看| 成人伊人222| 亚洲国产精品成人一区二区在线| 岛国在线大片| 国产资源在线观看入口av| 欧美va在线观看| swag国产精品一区二区| 色琪琪久久se色| 中文一区在线| 国产99久久精品| 国产精品色在线观看| 亚洲成人www| 日韩女优av电影| 日韩中文视频免费在线观看| 97精品国产91久久久久久| 91色精品视频在线| 一区二区精品在线观看| av免费在线播放网站| 大乳护士喂奶hd| 国产一级片播放| 国产极品久久久| 国产精品入口麻豆免费观看| 高清av影院| 中国日本在线视频中文字幕| 国产综合av| 欧美码中文字幕在线| 久久国产成人| 国产农村妇女精品| 欧美亚洲国产怡红院影院| 亚洲免费电影在线观看| 国产97在线亚洲| 日本午夜精品一区二区三区| 久久久久久香蕉| 女人黄色一级片| 中文字幕一区二区三区四区免费看| 濑亚美莉大战黑人中文字幕| 国产美女被遭强高潮免费网站| 国产福利片在线| 久久久精品一区二区毛片免费看| 欧美中文一区二区| 成人福利片网站| 欧美日韩国产网站| 91精品精品| 成人污视频在线观看| 精品女厕一区二区三区| 一道本无吗dⅴd在线播放一区| 国产精品成人观看视频国产奇米| 亚洲精品一区二| 亚洲成人激情小说| 欧美三级一区二区三区| 欧美久草视频| 麻豆国产在线播放| 秋霞一区二区三区| 亚洲欧美日韩一区在线观看| 国产精品毛片a∨一区二区三区| 精品视频免费看| 欧美激情中文网| 免费影院在线观看一区| 国产乱码一区二区三区四区| 国产一级二级毛片| 欧美精品se| 国产精品一区在线看| 99热这里有精品| 免费日韩av| 亚洲精品欧美二区三区中文字幕| 日韩精品福利网站| 亚洲最大av在线| 99爱视频在线| 欧美极品视频在线观看| 久热中文字幕在线观看| 国产鲁鲁视频在线观看免费| 日韩精品中文字幕一区二区| 奇米四色…亚洲| 懂色av一区二区三区| 久久夜色撩人精品| 亚洲欧美丝袜| 少妇饥渴放荡91麻豆| 国产美女永久免费| 一级毛片国产| 秋霞一区二区| 国产精品一卡二| 精品视频免费看| 国产精品r级在线| 国产aaa一级片| 日本特黄特色aaa大片免费| 精品无线一线二线三线| 黄色在线免费看| 日韩精品不卡一区二区| 亚洲国产岛国毛片在线| 亚洲视频网站在线观看| 九九九九九九精品| 日韩网站在线播放| 亚洲一二三四2021不卡| 成人免费在线电影| 色乱码一区二区三区网站| 国产精品美女一区二区三区 | 天天干天天操天天做| 午夜毛片在线观看| 777丰满影院| 韩国精品视频在线观看 | 欧美一区二区公司| 亚洲女人视频| 台湾亚洲精品一区二区tv| aaa欧美日韩| 亚洲欧洲国产精品| 亚洲欧美影院| 青草影院在线观看| freehdxxxx护士| 国产一区精品二区| bt7086福利一区国产| 亚洲欧洲在线播放| 国产精品无码乱伦| 国产精品老女人| 国产国产国产国产国产国产| 福利片在线一区二区| 久久免费美女视频| 久久精品国产v日韩v亚洲| 国产91视频一区| 欧美激情一区二区三区免费观看| a视频在线看| 蜜桃视频欧美| 亚洲一区在线播放| 国产精品美女网站| 日韩无码精品一区二区| 欧美爆操老女人| 日本肉肉一区| 欧美成人黑人| 久久九九精品| 精品国产网站在线观看| 视频一区视频二区视频三区视频四区国产| 91视频免费看片| 7色.com| 国产乱论精品| 自拍av一区二区三区| 国产va免费精品高清在线| 国模大尺度视频| 欧美性猛交xxxx免费看久久| 精品乱码一区二区三区四区| 91香蕉视频mp4| 久久久久国产精品www| 91小视频在线播放| 国内精品久久久久久久久蜜桃 | 国产亚洲在线播放| 麻豆tv在线播放| 国产理论视频在线观看| 成人在线app| 美国av一区二区| 亚洲精品中文字| 97国产精东麻豆人妻电影 | 国产精品久久久久av| 性色av浪潮av| 久久精品国产麻豆| 国产电影一区| 中文字幕在线不卡视频| 国产日韩精品综合网站| 波多野结衣片子| 91精品国产高久久久久久五月天| av一区二区在线播放| 色综合久久中文字幕综合网| 欧美性xxxx69| 国产又粗又猛又爽又黄的视频一| 国产又色又爽又黄刺激在线视频| 国产黄色精品网站| 性色av一区二区三区红粉影视| 国产二级一片内射视频播放| sesexxxx| 一区二区三区国产精华| 欧美一级片在线| 男女猛烈激情xx00免费视频| 无码国产精品96久久久久| 国产精品原创视频| 亚洲免费在线看| 国产精品日韩欧美一区二区三区 | 国产精品午夜一区二区三区| 色综合久久天天综合网| 亚洲精品无人区| av中文字幕第一页| 国产精品久久久久久妇女| 中文字幕制服丝袜一区二区三区| 亚洲一区二区三区香蕉| 国产极品在线播放| 3d玉蒲团在线观看| 久久亚洲影视婷婷| 成人性教育视频在线观看| 国产真实夫妇交换视频| 国产原厂视频在线观看| 久久夜色精品一区| 91文字幕巨乱亚洲香蕉| 影音先锋在线国产| 蜜桃麻豆av在线| 亚洲欧美日韩国产另类专区| 久久精品日韩| 国产三级三级在线观看| 亚洲精品乱码日韩| 欧美日韩国产精品一区二区三区四区 | 久久99国内精品| 国语自产精品视频在线看抢先版图片 | 欧美亚洲另类小说| 日韩在线伦理| 亚洲一区在线观看网站| 伊人色综合久久天天五月婷| 亚洲成人先锋电影| 亚洲性视频大全| 亚洲风情亚aⅴ在线发布| 国产美女18xxxx免费视频| 97涩在线观看视频| 久热成人在线视频| 国产精品扒开腿爽爽爽视频| 亚洲天堂一区在线观看| 欧美电影免费观看网站| 岛国av一区二区三区| 免费高清一区二区三区| 中国jizz妇女jizz妇女| 亚洲九九精品| 97视频免费观看| 日韩少妇裸体做爰视频| 欧美va视频| 欧美日韩一区视频| 久久人人爽av| 最新av在线网站| 99久久精品国产观看| 国内视频一区| 最近的中文字幕在线看视频| 日韩久久视频| 麻豆国产精品va在线观看不卡 | 91成年人网站| 色噜噜狠狠狠综合欧洲色8| 一区二区三区日韩欧美精品| 国产xxxx振车| 大香一本蕉伊线亚洲网| 精品一区二区三区久久久| 成人黄色在线免费| www.五月激情| 国产精品国产一区| 久久777国产线看观看精品| 日韩女同强女同hd| 日本精品在线观看| 亚洲免费av电影| 91传媒免费观看| 日本一区二区电影| 精品欧美一区二区三区精品久久| 蜜桃精品一区二区| av白虎一区| 欧美在线观看一区| 91porn在线| a毛片在线播放| 色婷婷一区二区三区四区| 午夜免费一级片| av中文字幕一区二区三区| 亚洲卡通动漫在线| 激情婷婷综合网| 日韩大片b站免费观看直播| 国产精品久久久久久久裸模| 2022中文字幕| 免费在线观看视频| 国产精品美女视频| 97成人在线观看视频| 婷婷国产在线| 亚洲最色的网站| 91欧美视频在线| 91xxx在线观看| 欧美日韩中文字幕综合视频| 日韩高清在线一区二区| 日本在线免费中文字幕| 一本久久综合亚洲鲁鲁五月天 | 九九热这里只有精品6| 男人的天堂一区二区| 国产主播性色av福利精品一区| 伊人久久五月天| 9i看片成人免费看片| 国产日韩欧美一区二区三区| 久久久久久久久久久久av| 一女二男一黄一片| 亚洲色图网站| 亚洲一区二区中文| 91九色porn蝌蚪| 成人福利视频在线看| 免费看欧美黑人毛片| 亚洲高清福利| 色综合网色综合| 久久久久久九九九九九| 成人午夜一级| 久久精品成人一区二区三区| 一区二区三区精彩视频| 黄色另类av| 精品久久久久亚洲| 中文字幕桃花岛| 最好看的中文字幕久久| 日韩欧美国产片| 美女扒开腿让男人桶爽久久软| 亚洲成人免费网站| 国产欧美一区二区三区在线看蜜臂| 日韩欧美网站| 91久久国产综合久久蜜月精品| 免费黄色小视频| 欧美高清在线视频| 中文字幕第38页| 一二三四视频在线中文| 一区二区在线免费视频| 国产精品国产精品国产专区| 中国女人久久久| 欧美性做爰猛烈叫床潮| 亚洲日本精品视频| 成人福利一区| 国产精品欧美日韩| 全彩无遮挡全彩口工漫画h#| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 永久看片925tv| 成人婷婷网色偷偷亚洲男人的天堂| 国产精品爽爽爽爽爽爽在线观看| 91九色国产蝌蚪| 国产精品视频一二三区| 一级黄色电影片| 精品国产伦一区二区三区观看说明 | 欧美日韩国产二区| free性欧洲69| 99视频在线精品| 最新中文字幕2018| 8av国产精品爽爽ⅴa在线观看| 久久av.com| 黄网站在线观看永久免费| 99久久99久久精品免费观看| 热久久久久久久久| 国产亚洲人成a在线v网站| 午夜精品久久久久久久久久久久| 欧美性巨大欧美| 国产精品家庭影院| 日b视频在线观看| 亚洲日本三级| 国产精品入口免费| 亚洲色图16p| 精品国产免费人成电影在线观看四季| 在线视频你懂得| 国产精品一区专区| 亚洲精品视频三区| 88久久精品| 99久久国产免费免费| 在线观看av中文| 亚洲аv电影天堂网| 在线观看毛片视频| 国产高清精品网站| 日本美女久久久| 麻豆一区二区| 国产精品日韩欧美一区二区| 精品视频一二三| 亚洲精品视频网上网址在线观看| 刘亦菲毛片一区二区三区| 久久女同性恋中文字幕| theav精尽人亡av| 999久久久亚洲| 日本特级黄色大片| 嗯啊主人调教在线播放视频| 久久久久日韩精品久久久男男| 黄色免费av| 欧美一区二区免费| 亚洲黄色精品视频| 国产精品免费视频一区| 影音先锋男人资源在线观看| 一区二区三区精品视频在线观看 | 免费在线看黄色片| 午夜不卡影院| 国产狼人综合免费视频| 在线麻豆国产传媒1国产免费| 日韩精品欧美激情| 欧美国产中文| 欧美午夜电影在线| 国产又大又粗又长| 国产三区在线成人av| 蜜臀av午夜精品久久| 男女性色大片免费观看一区二区| 中文字幕剧情在线观看| 国产欧美久久一区二区三区|