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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5819|回復: 4
打印 上一主題 下一主題
收起左側

基于安卓經典藍牙開發-串口 附源碼

  [復制鏈接]
跳轉到指定樓層
樓主
  • 展現廣播的三種方式
  • 通知; 2、對話框; 3、消息提示框
  • 在使用Android藍牙適配器中的startDiscovery需要先打開定位服務
  • 在連接藍牙之前,還要先取消藍牙設備的掃描,否則容易連接失敗
前段時間自己學做了一個基于安卓經典藍牙的app,也遇到不少坑,在網上相對與BLE低功耗藍牙來說,它的資料方面都是比較缺少的,而且網上經典藍牙源碼大部分都很長,對于入門的同學來說,看沒兩分鐘就產生放棄的念頭了。
第一步:在AndroidManifest中添加:
<!--管理藍牙需要-->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!--搜索藍牙需要,因為藍牙可以被用來定位,所以需要定位權限-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
上面都是我們使用到設備功能的權限申請。
第二步:設置兩個按鈕分別是打開和關閉藍牙
對藍牙設備干事情,那么我們就得拿到它的接口來控制它
//獲取藍牙適配器
private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
打開藍牙:
1、
public void OpenBlueTooth(View view) {
    if(isSupportBlueTooth() == true) {
        if(!BlueToothState()) {
            Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(intent,0);
            showToast("親,打開了噢!需要什么幫助嗎?");
        }
        else {
            showToast("親,已經打開了噢,無需重復打開。");
        }
    }
    else {
        showToast("親,您不支持此藍牙設備!");
    }
}
2、打開藍牙應該先確定使用的手機是否支持藍牙設備(手機沒有就沒必要進行下一步了)
//判斷是否支持藍牙
public boolean isSupportBlueTooth() {
    if(mBluetoothAdapter != null) {
        return true;
    }
    else {
        return false;
    }
}
3、然后打開前還需要知道手機是否打開藍牙了吧!那就獲取手機現在藍牙設備的狀態
//獲取藍牙狀態
public  boolean BlueToothState() {
    assert (mBluetoothAdapter != null);   //若不支持該藍牙設備會有個斷言
    return mBluetoothAdapter.isEnabled();  
}
2、3小步驟都只是個函數功能體,都是為1、步驟使用的,初學者會疑惑什么是斷言,就是做判斷,真的那么下面就不執行咯!還有下面是是一個消息對象,
獲取用戶對藍牙適配器申請打開的請求消息,使用startActivityForResult對消息做出應答,會有對話框的提示效果
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent,0);
關閉藍牙:
public void CloseBlueTooth(View view) {
    mBluetoothAdapter.disable();
    showToast("親,我們會再見面的!");
}
先說明一點我這里的還是都在有View view形參接口,這是一個動作的監聽接口,下圖有設置的圖片,這里設置就可以了。

感覺打開藍牙和關閉藍牙挺簡單的吧!
難度開始來了噢!

第三步:
打開了藍牙我們就得弄一個來搜索周圍的設備吧!
下面是一個定義好的搜索藍牙函數
public void startDiscovery() {
    if (mBluetoothAdapter.isDiscovering()) {mBluetoothAdapter.cancelDiscovery();  Toast.makeText(this,"搜索器打開",Toast.LENGTH_SHORT).show();}
    mBluetoothAdapter.startDiscovery();
    if (!mBluetoothAdapter.isDiscovering()) {Toast.makeText(this,"搜索器沒打開",Toast.LENGTH_SHORT).show();}
}
有點看不懂嗎,其實還好吧,就是第一次判斷是否開啟搜索周圍藍牙設備,開啟了就把它關了,重新打開在搜索,在判斷我是否開啟了搜索沒。(isDiscovery是開啟搜索,cancelDiscovery是關閉搜索的意思)
有搜索藍牙設備函數了,我們就搞一個按鍵讓其有觸發效果吧!
//按鈕搜尋藍牙
Button button_discovery = (Button) findViewById(R.id.DiscoveryBT);
button_discovery.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startDiscovery();
    }
});
開啟了搜索藍牙設備我們得有東西接收這些設備吧,不然它偷偷摸摸搜索鬼知道它搜了什么東西。那我們就得用廣播把這些偷偷摸摸搜索到了設備把它弄出來,放進“箱子”里。
這就是我們定義的廣播接收器
public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) {
            Toast.makeText(context, "開始", Toast.LENGTH_SHORT).show();
        } else if (BluetoothDevice.ACTION_FOUND.equals(intent.getAction())) {
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            //////////////////////////////////////////////創建搜索藍牙列表的///////////////////////////////////////////////////////////////////
            for (int i = 0; i < deviceAdress.size(); i++) {
                if (deviceAdress.get(i).getAddress().equals(device.getAddress())) return;
                //上面if語句就是去除已經獲取的藍牙設備
            }
            // 不是重復的就添加到列表中(獲取未配對的藍牙設備)
            deviceAdress.add(device);  //添加地址到列表中   用于鑒別是否已經添加列表和點擊事件用的
            deviceName.add("地址:"+device.getAddress()+"\n"+"名稱:"+device.getName());  //存放藍牙名稱和地址用于顯示到列表上的

        } else if(intent.getAction().equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
        }
    }
}
代碼都有注釋我就不一一說明了,說一下箱子要在外面定義
public ArrayList<BluetoothDevice> deviceAdress = new ArrayList<>();  //存放藍牙設備(這里Adress我忘了改過來了,這是存放設備不是設備地址)
public ArrayList<String> deviceName = new ArrayList<>();  //存放藍牙名稱和地址
然后就是用廣播類里面用if那些進行信息篩選(用藍牙設備這個方法獲取設備的信息BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE
然后就是把搜索到的device
你可以用Toast.make()打印一下信息看看效果
記得廣播接收器的使用一定要注冊廣播接收器,不然就廢掉了
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BluetoothDevice.ACTION_FOUND);//發現藍牙
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);//搜索停止
intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED );//搜索啟動
//上面是添加動作事件
//注冊廣播接收者的對象
registerReceiver(myReceiver,intentFilter);
都放在箱子里了,我們應該把它拿出來一個一個展示一下吧!
這展示的方法就是用列表把它展示出來:
public ListView listView;   //定義展示列表

//////////////////////////////////////////////創建搜索藍牙列表的///////////////////////////////////////////////////////////////////并把
arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1,deviceName);  //實例化ArrayAdapter對象deviceName集合數據放入arrayAdapter適配器集合內
listView = (ListView) findViewById(R.id.list);  //獲取列表框的
listView.setAdapter(arrayAdapter);  //將arrayAdapter集合內的數據加載到列表框 就是適配器對象與ListView關聯
這樣放進列表你以為就可以了嗎,你怎么知道它加載了多少個已發現的設備呢?這需要我們到廣播接收器這個線程中間斷刷新載入新設備
arrayAdapter.notifyDataSetChanged();  //更新列表
下面是我定義的一個刷新列表搜索
        Button button= (Button) findViewById(R.id.Broadcast);  //獲取布局文件中的廣播按鈕
        button.setOnClickListener(new View.OnClickListener() { //為按鈕設置單擊事件
            @Override
            public void onClick(View v) {
                //////////藍牙刷新///////////////
                deviceAdress.clear();         //
                deviceName.clear();           //
                startDiscovery();             //
                ////////////////////////////////
            }
        });
到現在你就可以試試你做的可不可以將搜索到的藍牙加載到列表中顯示了,可以的化,看看可不可以刷新列表。

第四步:
把我們列表中的設備能進行點擊觸發
    //連接藍牙
    public void Connect_BT(ArrayList<BluetoothDevice> deviceAdress) {
        //MainActivity 實現OnItemClickListener 然后重寫方法
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                BluetoothDevice clickDevice = (BluetoothDevice)deviceAdress.get(position);
                String s1 = String.valueOf(position);  //編號
                Toast.makeText(MainActivity.this, s1 + "--" + clickDevice.getName() + "--" + clickDevice.getAddress(),Toast.LENGTH_SHORT).show();
                //在連接前需要先關閉搜索
            }
        });
    }
把我們列表按鍵觸發這個類放到廣播接收器這個線程中
Connect_BT(deviceAdress);
按下列表就有這個提示框咯!開心吧

第五步:
連接我們選中的藍牙
連接這些藍牙都需要協議的,都是廠家底層工作人員定好的
//手機連接的UUID
//設備連接的UUID由廠商決定。
private final String BLUETOOTH_UUID = "00001101-0000-1000-8000-00805F9B34FB";   //藍牙通信的UUID,必須為這個,如果換成其他的UUID會無法通信
private BluetoothSocket bluetoothSocket = null;
UUID我就步詳細說了,你們自行百度。BluetoothSocket套接字就是連接藍牙服務器用的。
在Connect_BT添加下面代碼即可()
                //在連接前需要先關閉搜索
                //點擊列表,去請求服務器
                if (clickDevice != null) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                bluetoothSocket = clickDevice.createRfcommSocketToServiceRecord(UUID.fromString(BLUETOOTH_UUID));
                                bluetoothSocket.connect();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
                }
這我要說明一下connect方法會阻塞線程,我們需要在下面創建一個子線程來運行,不然程序奔潰別找我就可以了。
到這我們就所有基本弄好了

第五步:
接收和發送數據
這里我略微講一下
// 用來收數據
InputStream inputStream = bluetoothSocket.getInputStream();
// 用來發數據
OutputStream outputStream;
下面是我用按鍵發送數據的代碼(參考)
Button button_oc3 = (Button) findViewById(R.id.button_open_close3);
button_oc3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String text = "d12";
        try {
            outputStream = bluetoothSocket.getOutputStream();
            outputStream.write(text.getBytes());
            outputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
});
記住完成BluetoothSocket的一系列操作后,記住用close()方法關閉套接字噢,不然手機很耗電,燒壞別找我麻煩。
接收數據的話會比較麻煩一點點,需要用一個線程和while死循環繼續時刻接收(因為InputStream 也會阻塞線程的)

到這就告一段落了。
我有一個老師是這樣說過的游戲打累了就休息一下,休息的方法就是敲代碼。

在社會學到的要學會分享回報社會

(有什么好的想法和建議可以分享一下給我)
廣州大學華軟軟件學院djw

全部資料51hei下載地址(源碼):
mybluetooth_finish.zip (412.24 KB, 下載次數: 64)
經典藍牙開發過程.docx (148.04 KB, 下載次數: 56)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:882411 發表于 2021-2-3 22:07 來自觸屏版 | 只看該作者
樓主,這個是用eclipse編寫的嘛
回復

使用道具 舉報

板凳
ID:413056 發表于 2021-3-22 20:37 | 只看該作者
思慶 發表于 2021-2-3 22:07
樓主,這個是用eclipse編寫的嘛

android studio
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
ID:368534 發表于 2021-4-7 17:45 | 只看該作者
感謝樓主的無私奉獻,文件可以打開,可以生成APK,內容也很通俗易解。有參考價值。
回復

使用道具 舉報

6#
ID:298011 發表于 2023-12-27 11:28 | 只看該作者
寫得很詳細,學習下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
亚洲国产精品无码av| 在线观看亚洲一区二区| 麻豆av福利av久久av| 精品捆绑美女sm三区| 99精品欧美一区| 特黄特色欧美大片| 毛片在线看网站| 欧美色欧美色| 九九视频在线免费观看| aaa毛片在线观看| 亚洲精品免费在线视频| 精品一区二区三区电影| 亚洲欧美日本在线| 日韩影院精彩在线| 黄色成人小视频| 在线看小视频| 四虎a级欧美在线观看| 久久久久久久99| 91精产国品一二三| 在线观看av的网址| 成人激情视频在线观看| 亚洲人成伊人成综合网久久久 | 精品一区av| 蜜臀在线观看| 欧美在线中文| 日韩黄色一级视频| aaaaa级少妇高潮大片免费看| 国产一级做a爰片久久毛片男| 国产精品第一视频| 亚洲国产另类 国产精品国产免费| 中文字幕日韩av资源站| 不卡一区二区中文字幕| 蜜芽一区二区三区| 亚洲经典视频在线观看| 日韩欧美高清| 一道本一区二区三区| 国产精品成人**免费视频| www.youjizz.com在线| 成年人在线观看网站| 一本一本久久a久久| 三上悠亚av一区二区三区| 丁香花在线影院观看在线播放 | 欧美乱妇高清无乱码| 国产视频在线观看一区二区| 欧美一二三四区在线| 日本道免费精品一区二区三区| 亚洲自拍偷拍图区| 亚洲精品成人少妇| 亚洲欧洲制服丝袜| 国产精品不卡在线观看| 久久精品日韩一区二区三区| 99r国产精品| 国产91精品一区二区麻豆网站| 青青草国产成人av片免费| 日韩精品成人一区二区三区| 美女爽到呻吟久久久久| 噜噜噜久久亚洲精品国产品小说| 99精品99| 久久成人一区| 美女爽到高潮91| 奇米四色…亚洲| 精品一区二区三区香蕉蜜桃| 蜜臀va亚洲va欧美va天堂| 视频一区二区三区中文字幕| 媚黑女一区二区| 日本色综合中文字幕| 蓝色福利精品导航| 国产精品自拍三区| 成人久久18免费网站麻豆| 国产大片一区二区| 99久免费精品视频在线观看 | 欧美福利视频在线观看| 欧美黑人巨大精品一区二区| 欧美激情中文网| 欧洲亚洲免费在线| 国产狼人综合免费视频| 亚洲在线第一页| 九九九九久久久久| 五月天亚洲综合| 久久99精品视频一区97| 欧美成人精品一区二区| 91精品国产乱码久久久久久久久 | 色欲AV无码精品一区二区久久| 懂色av粉嫩av浪潮av| 永久免费看片视频教学| 日韩成人一区二区三区| 69视频免费看| 亚洲精品一级片| 四虎精品成人免费观看| 日日爽夜夜爽| 开心快乐六月丁香婷婷| 国产一二三在线观看| 国产一区二区三区高清在线观看| 国产不卡av在线免费观看| 日本a在线免费观看| 九色蝌蚪自拍| 国产一区视频网站| 欧美性猛交视频| av中文字幕网址| 18av视频| zzijzzij亚洲日本少妇熟睡| 99视频这里有精品| 高清精品视频| 欧美日韩爱爱| 欧洲激情综合| 欧美日韩爆操| 免费高清在线一区| 成人自拍视频在线| 国产精品色噜噜| 午夜天堂影视香蕉久久| 欧美丰满少妇xxxxx高潮对白| 日韩第一页在线| 韩国一区二区电影| 国产高清在线精品一区二区三区| 无码人妻aⅴ一区二区三区日本| 91国产精品视频在线观看| 中文字幕永久免费| 国产精品麻豆免费版现看视频| 国产无套内射又大又猛又粗又爽| 中文字幕在线天堂| 成人午夜免费福利| 伊人波多野结衣| 三级国产三级在线| 欧美人与牲禽动交com| 亚洲成人短视频| 人人精品视频| 久久国产99| 欧美国产日韩在线观看| 色欧美日韩亚洲| 伊人久久久久久久久久| 日韩暖暖在线视频| 三区精品视频| 国产精品视频中文字幕| 在线免费观看日韩av| 日本熟妇成熟毛茸茸| 国产高潮流白浆喷水视频| 国产红桃视频| 日韩av中文| 九九热hot精品视频在线播放| 亚洲福利一区| 久久影院视频免费| 色婷婷国产精品久久包臀| 亚洲片av在线| 91免费精品视频| 男人添女人下部高潮视频在观看| 亚洲av网址在线| 中文字幕 亚洲视频| 午夜娱乐在线| 爱久久·www| 激情欧美一区二区三区黑长吊| 91精品1区| 97久久精品人人做人人爽50路| 色就色 综合激情| 日韩在线观看网站| 精品蜜桃一区二区三区| 亚洲三级在线观看视频| 久久久久久久黄色| 婷婷综合久久中文字幕蜜桃三电影| 黄色网免费看| 麻豆mv在线看| 中文在线日韩| 国产精品久久久久久久岛一牛影视| 欧美精品一区二区三区很污很色的| 亚洲亚洲人成综合网络| 亚洲精品自产拍| 国产在线视频欧美一区二区三区| 手机看片福利日韩| 国产在线精品观看| 国产片乱18免费| 精品自拍一区| 欧美综合在线视频观看| 成人高清在线视频| 67194成人在线观看| 国产91精品网站| 亚洲 欧美 综合 另类 中字| 国产精品麻豆一区| 久久性生活视频| 在线视频91p| 欧美日韩精品在线一区| 国产亚洲欧美中文| 亚洲精品狠狠操| av免费观看久久| 亚洲天堂网站在线| 国产一区二区在线视频聊天| a4yy在线播放免费观看视频| 51亚洲精品| 97精品电影院| 永久免费精品影视网站| 亚洲欧洲日韩精品| 国产伦精品一区二区三区免费视频| 999这里有精品| www黄色网址| 91美女视频在线| 2023国产精品久久久精品双| 亚洲成国产人片在线观看| 欧美专区在线视频| 手机免费av片| 亚洲av成人无码久久精品老人| 黄av在线播放| 久久亚洲影院| 日韩欧美久久久| 欧美日韩国产精品一卡| 成人涩涩小片视频日本| av在线看网址| 嫩草国产精品入口| 亚洲视频在线一区二区| 77777少妇光屁股久久一区| 一路向西2在线观看| 日韩中文字幕观看| 97人人爽人人澡人人精品| 麻豆传媒一区二区三区| 亚洲欧美国产高清va在线播| 国产精品日韩三级| 久久久999久久久| 国产在线一二三区| 国产精品丝袜xxxxxxx| 制服丝袜亚洲播放| 午夜精品一区二区三区四区 | 午夜精品区一区二区三| 久久精品欧美一区二区| 日本女优天堂99伊人| 精品免费av| 色婷婷综合久久久中文一区二区| 91视频婷婷| 尤物在线免费视频| 爆操欧美孕妇| 99久久国产综合精品成人影院| 精品女厕一区二区三区| 97人人做人人人难人人做| 国产又粗又长又爽| 成年人影院在线观看| 欧美日韩爱爱| 色先锋资源久久综合| 精品91免费| 精品国产xxx| 成人在线免费看片| 国产一区二区成人久久免费影院 | 中文字幕亚洲日本岛国片| 成人在线免费观看黄色| 国产成人午夜精品5599| 欧美大尺度激情区在线播放| 亚洲丝袜在线观看| 美女做爰内谢全过程视频| 深夜福利久久| 欧美精品tushy高清| 97超碰人人爱| 婷婷色在线观看| 在线观看欧美| 99久久亚洲一区二区三区青草 | 爱情岛论坛亚洲品质自拍视频网站| 国产精品99久久久久久有的能看| 久久久免费高清电视剧观看| 日本xxx在线播放| 好男人看片在线观看免费观看国语| 最新精品国产| 日韩精品免费在线播放| 亚洲最大成人在线观看| 狠狠操五月天| 自拍偷拍欧美| 最近2019好看的中文字幕免费| 欧美成在线视频| 潘金莲激情呻吟欲求不满视频| 久久91精品视频| 日韩一区二区在线免费| 欧美va亚洲va| 亚洲一区在线不卡| 黄色大片免费看| 欧美日一区二区三区在线观看国产免| 亚洲老司机av| 成人三级做爰av| 500福利第一精品导航| 日韩av不卡一区二区| 午夜精品蜜臀一区二区三区免费| а天堂中文在线资源| 1769视频在线播放免费观看| proumb性欧美在线观看| 91亚洲一区精品| 亚洲一区精品在线观看| 国产精品视频一区二区三区综合| 在线精品亚洲一区二区不卡| 男人插女人视频在线观看| 国产女人免费看a级丨片| 天天揉久久久久亚洲精品| 亚洲人成网在线播放| 五级黄高潮片90分钟视频| 国产免费永久在线观看| 久久久精品人体av艺术| 欧美一级片免费观看| juy有坂深雪中文字幕| 久久五月天小说| 神马久久久久久| 成年人视频软件| xxxx成人| 色综合天天视频在线观看 | 新婚的少妇hd中文字幕| 日韩欧美视频| 久久精品99久久久久久久久| 成人小视频免费看| 欧美6一10sex性hd| 欧美日韩人人澡狠狠躁视频| 丝袜老师办公室里做好紧好爽 | 国产精品亚洲综合久久| 欧美最猛性xxxxx亚洲精品| 日日夜夜操视频| av日韩精品| 亚洲欧美日韩天堂| 97精品在线播放| 中文一区一区三区高中清不卡免费| 一本色道久久综合狠狠躁的推荐| 无码内射中文字幕岛国片| 岛国在线最新| 国产**成人网毛片九色| 久久大香伊蕉在人线观看热2| 亚洲av成人无码久久精品老人| 国产成人ay| 免费不卡欧美自拍视频| 国产精品第一页在线观看| 日本久久二区| 精品国产网站在线观看| 一二三四国产精品| 超碰97免费在线| 色婷婷精品久久二区二区蜜臂av | 国产伦精品一区二区三区在线| 后入内射欧美99二区视频| 欧美精美视频| 欧美乱大交xxxxx| 国产伦精品一区二区三区视频我 | 中文字幕电影一区| 加勒比海盗1在线观看免费国语版| se在线视频| 成人激情免费网站| 日本三日本三级少妇三级66| eeuss影院130020部| 国产激情视频一区二区在线观看 | 亚洲国产综合在线观看| 日韩久久免费视频| 欧洲性xxxx| 精品久久亚洲| 日韩在线观看免费高清完整版| 精品少妇久久久久久888优播| 高清日韩中文字幕| 久久影视电视剧免费网站清宫辞电视 | 国产一区二区三区中文字幕| 黄色成人美女网站| 久久精品国产精品亚洲| 日韩免费视频一区二区视频在线观看| 精品一区二区三区中文字幕 | 天堂一区在线观看| 精品久久av| 欧美性少妇18aaaa视频| 日本精品一二三区| 成人欧美一区二区三区的电影| 69久久夜色精品国产69蝌蚪网| 欧美大波大乳巨大乳| 久久亚洲精精品中文字幕| 亚洲精品视频网上网址在线观看| 国产免费观看av| 欧美伦理在线视频| 国产精品91在线观看| 天天干视频在线观看| 久久成人精品| 手机成人在线| 99re6热在线精品视频播放| 亚洲国产日韩一区二区| 污视频网址在线观看| 成人国产电影在线观看| 精品亚洲男同gayvideo网站| 亚洲黄色激情视频| 极品中文字幕一区| 国产欧美欧洲| 免费h片在线观看| 午夜精品成人在线视频| 亚洲天堂av网站| silk一区二区三区精品视频| 97精品视频在线播放| 久热免费在线视频| 成人在线一区二区三区| 免费看欧美黑人毛片| 免费日本一区二区三区视频| 精品三级在线观看| 国产精品美女久久久久av爽| 狠狠综合久久av一区二区老牛| 日韩一区二区三区资源| 黄色网址在线播放| 欧美一区二区大片| 天堂网视频在线| 麻豆精品91| 熟女少妇在线视频播放| 国产高清自产拍av在线| 蜜臀久久99精品久久久无需会员| 无国产精品白浆免费视| 国产精品美女久久久久久久久久久| xfplay5566色资源网站| 久草在线综合| 亚洲a∨日韩av高清在线观看| 国内av免费| 日韩一区二区三区电影在线观看 | 久久国产一级片| 激情丁香综合| 99re6这里有精品热视频|