日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

發布時間:2025/6/17 Android 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請注明出處 :?http://blog.csdn.net/shulianghan/article/details/50515359


參考 :?

-- 官方文檔 : https://developer.android.com/guide/topics/connectivity/bluetooth-le.html;






1. 概述


BLE 概述 :?

-- 版本支持 :?Android 4.3 (API Level 18) 內置框架引入了 藍牙低功耗方案 (Bluetooth Low Energy, BLE) 支持;?

-- 角色支持 : Android 手機只能作為 主設備 (central role), 開發者開發的 APP 可以使用其提供的 API 接口, 用于 發現設備, 遍歷服務 (services), ?讀寫服務中的特性 (characteristics).?

-- 傳統藍牙對比 : 與傳統的藍牙對比, 藍牙低功耗方案 (Bluetooth Low Energy) 是出于更低的電量消耗考慮而設計的. 這可以使 Android 應用可以與 BLE 設備進行交流, 這些設備需要很低的電量, 如 近距離傳感器, 心率測量設備, 健康設備 等等.



2. 關鍵術語 和 概念



(1) Generic Attribute Profile (GATT) 通用屬性規范


Generic Attribute Profile (GATT) 通用屬性規范?:?

-- GATT 作用 : GATT 規范是一個針對 在 BLE 連接上的, 發送 和 接收 少量數據的一個規范, 所有的現有的低功耗應用的規范都是基于這個 GATT 規范制定的.

-- 制定者 : 藍牙技術聯盟 (Bluetooth SIG) 為低功耗設備定義了許多規范, 一個 規范 (Profile) 就是 設備如何在特定的應用中工作的詳述.?

-- 設備規范對應關系 : 此外, 一個設備可以實現多個規范, 如 : 一個設備可以包含一個心率檢測器, 和 電量檢測器.



(2) Attribute Protocol?(ATT) 屬性協議


Attribute Protocol (ATT) 屬性協議 :?

-- ATT 與 GATT 關系 : GATT 規范是建立在 ATT 的上一層的, 這套改改通常被稱為 GATT/ATT.?

-- ATT 作用 : ATT 被用于優化 BLE 設備的運行, 為了這個目的, ATT (屬性協議) 使用盡可能少的字節.?

-- ATT 唯一標識 : ATT 中的每個屬性都被 一個 UUID (Universally Unique Identifier) 獨一無二的進行標識, UUID 是一個 128 比特的標準的字符串 ID, 用于信息的唯一標識.?

-- ATT 屬性 : ATT 中定義的屬性就是 Charicteristics (特性) 和 Services (服務);



(3) Characteristic 特性


Characteristic 特性 :?

-- Characteristic 概念 : 一個 Characteristic 特性包含了一個值 和 多個 Descriptor (描述符) 用于描述這個特性的值.?

-- 本質 : 一個特性可以被認為是一個類型, 類似于一個類.



(4) Descriptor 描述符


Descriptor 描述符 :?

-- 作用 : 描述符 被定義為一些屬性, 這些屬性用于描述 Characteristic (特性) 的值.?

-- 示例 : 例如, 一個 描述符 可以說明一個 可讀的描述, 一個 特性值的可接受范圍, 或者 一個特性值的測量單元.



(5) Service 服務


Service 服務 :?

-- 服務本質 : 服務是 Characteristic (特性) 的集合.?

-- 示例 : 如, 你可以有一個 名稱為 "Heart Rate?Monitor (心率監控)" 的服務, 包含了特性 "Heart Rate Measurement (心率測量)".?

-- 參考資料 : 你可以在 bluetooth.org 官網查詢到一個基于 GATT 服務 和 規范的列表.



3. 角色 和 職責



(1) 四種角色


Android 設備 與 BLE 設備互動時, 設備的角色 和 職責 :?

-- 中心設備 和 外圍設備 : 這個角色體系適用于 BLE 連接. 中心設備角色 可以掃描, 查找廣播. 外圍設備角色 發送廣播.

-- GATT 服務器 和 GATT 客戶端 : 這個決定了兩個設備之間, 一旦建議連接后, 如何進行互相通信.



(2) 中心設備 和 外圍設備


BLE 連接需要兩種設備都存在 : 為了理解其中的區別, 想象一下 你有一個 Android 設備 和 一個激活的 智能腕表?藍牙設備. 手機支持作為 中心設備 角色, 智能腕表 藍牙設備支持作為外圍設備角色, 為了建立 BLE 連接, 只有外圍設備 或者 只有 中心設備 都不能建立 BLE?連接.



(3) GATT 服務器 和 GATT 客戶端


GATT 服務器 和 GATT 客戶端 簡介 :?

-- GATT 服務器 和 GATT 客戶端 角色不是固定的 : 一旦手機 和 智能腕表 設備建立了 BLE 連接, 它們開始互相交換 GATT 元數據. 根據它們之間傳輸的數據類型, 其中的一個會扮演 GATT 服務器的角色.?

-- 角色改變示例 : 如果 智能腕表 設備想要向手機報告傳感器數據, 那么智能腕表必須當做 GATT 服務器. 如果智能腕表 想要從手機上接受更新數據, 那么 Android 手機就是 GATT 服務器.

-- 手機 和 設備 都可以作為 GATT 服務器 和 客戶端 : 在本文檔中使用的示例代碼, 在 Android 設備上運行的 Android APP 就是 GATT 客戶端, BLE 外圍設備?就是 GATT 服務器. Android APP 從 GATT 服務器上獲取數據, 服務器的 BLE "heart rate monitor (心率監測)" 支持 "Heart Rate Profile (心率規范 - 一種 BLE 藍牙標準規范)". Android APP 也可以作為 GATT 服務器;



4. BLE 權限


(1) 藍牙權限簡介


Android 藍牙權限簡介 :?

-- 權限作用 : 為了在應用中使用藍牙功能, 必須在 AndroidManifest.xml?中 聲明藍牙權限. 所有的藍牙通信操作都需要 藍牙權限 來允許執行, 例如 搜索藍牙, 藍牙連接, 數據交互等操作.

-- 搜索設置藍牙權限 : 如果 APP 要發起設備搜索 或者 管理 藍牙設置, 需要 提前聲明 BLUETOOTH_ADMIN 權限.?

-- 注意 : 使用 BLUETOOTH_ADMIN 權限的前提是 必須聲明 BLUETOOTH 權限.



(2) 藍牙權限簡介


藍牙權限示例 :?

-- AndroidManifest.xml 聲明藍牙權限示例 :?

<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
-- 充當 BLE 設備權限 : 如果你的 APP 只需要勝任 BLE 設備的工作, 只需要如下配置 :?

<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>



(3) 動態控制 BLE 功能是否使用


動態控制 BLE 是否可用 : 不管怎樣, 如果你想要讓你的 APP 可以當做 BLE 設備, 但是手機不支持這個操作, 你仍然可以進行如下配置, 只是將其中的 android:required 設置成 false. 此時在運行時, 你可以使用 "PackageManager.hasSystemFeature()" 方法決定 BLE 是否可用.

//使用下面的函數決定 設備上的 BLE 功能 是否可用 //此時你可以選擇性的關閉 BLE 相關的功能 if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();finish(); }


5. 創建 BLE


(1) 創建 BLE 簡介


創建 BLE 簡介 :?

-- 驗證 BLE 功能 : 在應用可以通過 BLE 交互之前, 你需要驗證設備是否支持 BLE 功能, 如果支持, 確定它是可以使用的.?

-- 注意 : 這個檢查只有在 下面的配置 設置為 false 時才是必須的;

<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
-- 不支持 BLE 關閉相關功能 : 如果 Android 手機不支持 BLE 功能, 你應該優雅的 關閉 BLE 相關功能.?

-- 支持 BLE 打開藍牙 : 如果 BLE 支持 BLE 功能, 但是設備的藍牙是關閉的, 你可以在應用中請求打開設備的藍牙模塊.?

-- 步驟總結 : 創建 BLE 藍牙的過程分成兩個步驟, 1. 獲取 BluetoothAdapter, 2. 打開 設備的藍牙模塊.



(2) 獲取 BluetoothAdapter (藍牙適配器)


獲取 BluetoothAdapter 藍牙適配器 :?

-- BluetoothAdapter 類作用 : 所有的藍牙活動都需要 BluetoothAdapter, BluetoothAdapter 代表了設備本身的藍牙適配器 (藍牙無線設備). 整個系統中只有一個 藍牙適配器, 應用可以使用 BluetoothAdapter 對象與 藍牙適配器硬件進行交互.?

-- 獲取 BluetoothAdapter 代碼示例 :?

// 初始化藍牙適配器 final BluetoothManager bluetoothManager =(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter();

-- 注意 : 這個方法使用了 getSystemService() 方法, 返回了一個 BluetoothManager 實例對象, 從 BluetoothManager 實例對象中可以獲取 BluetoothAdapter 對象;



(3) 打開藍牙功能


打開藍牙 :?

-- 檢查是否可用 : 為了保證 藍牙功能是打開的, 調用 BluetoothAdapter 的 isEnable() 方法, 檢查藍牙在當前是否可用. 如果返回 false, 說明當前藍牙不可用.?

-- 示例代碼 :?

private BluetoothAdapter mBluetoothAdapter; ... // 確認當前設備的藍牙是否可用, // 如果不可用, 彈出一個對話框, 請求打開設備的藍牙模塊 if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }


6. 查找 BLE 設備


(1) 查找所有的?BLE 設備


查找 BLE 設備 :?

-- 查找方法參數 : 為了搜索到?BLE 設備, 調用 BluetoothAdapter 的 startLeScan() 方法, 該方法需要一個 BluetoothAdapter.LeScanCallback 類型的參數. 你必須實現這個 LeScanCallback 接口, 因為 BLE 藍牙設備掃描結果在這個接口中返回.?

-- 查找策略 : 藍牙搜索是非常耗電的, 你需要遵守以下的 中斷策略 和 不循環策略.

-- 中斷策略 : 只要一發現藍牙設備, 馬上中斷掃描.

-- 不循環策略 : 不要循環掃描, 設置一個掃描的最大時間限制. 一個設備在之前可用, 繼續掃描可能會使設備不可用, 此外繼續掃描會持續浪費電池電量.

-- 源碼示例 :?

/*** 搜索 和 展示 可用的藍牙設備 的 Activity 界面*/ public class DeviceScanActivity extends ListActivity {private BluetoothAdapter mBluetoothAdapter;private boolean mScanning;private Handler mHandler;// 10 秒后停止搜索private static final long SCAN_PERIOD = 10000;...private void scanLeDevice(final boolean enable) {if (enable) {// 在一個預先定義的時間段后停止掃描.mHandler.postDelayed(new Runnable() {@Overridepublic void run() {mScanning = false;//開始掃描mBluetoothAdapter.stopLeScan(mLeScanCallback);}}, SCAN_PERIOD);mScanning = true;mBluetoothAdapter.startLeScan(mLeScanCallback);} else {mScanning = false;mBluetoothAdapter.stopLeScan(mLeScanCallback);}...} ... }

(2) 查找特定?BLE 設備


查找特定 BLE 設備 :?

-- 方法調用 : 查找特定類型的外圍設備, 可以調用下面的方法, 這個方法需要提供一個 UUID 對象數組, 這個 UUID 數組是 APP 支持的 GATT 服務的特殊標識.

-- 示例 :?

startLeScan(UUID[], BluetoothAdapter.LeScanCallback)



(3) BluetoothAdapter.LeScanCallback 回調接口


掃描回調接口 :?

-- 接口作用 : BluetoothAdapter.LeScanCallback 實現類, 在這個實現類的接口中返回 BLE 設備掃描結果;

-- 源碼示例 :?

private LeDeviceListAdapter mLeDeviceListAdapter; ... // 設備掃描回調接口 private BluetoothAdapter.LeScanCallback mLeScanCallback =new BluetoothAdapter.LeScanCallback() {@Overridepublic void onLeScan(final BluetoothDevice device, int rssi,byte[] scanRecord) {runOnUiThread(new Runnable() {@Overridepublic void run() {mLeDeviceListAdapter.addDevice(device);mLeDeviceListAdapter.notifyDataSetChanged();}});} };

(4) 設備掃描類型


設備掃描類型 : 藍牙設備掃描 在同一個時間掃描時, 只能掃描 BLE 設備 或者 SPP 設備中的一種, 不能同時掃描兩種設備.




7. 連接到 GATT 服務


(1) 連接指定 BluetoothDevice 藍牙設備


連接指定設備 :?

-- 連接到 GATT 服務 : 與 BLE 設備交互的第一步是 連接到 BLE 設備中的 GATT 服務.?

-- 實現方法 : 調用 BluetoothDevice 的 connectGatt() 方法可以連接到 BLE 設備的 GATT 服務.?

-- 參數解析 : connectGatt() 方法需要三個參數, 參數一 Context 上下文對象, 參數二 boolean autoConnect 是否自動連接掃描到的藍牙設備, 參數三 BluetoothGattCallback 接口實現類.?

-- 用法示例 :?

mBluetoothGatt = device.connectGatt(this, false, mGattCallback);

-- 獲取 BluetoothGatt 對象 : 調用 connectGatt() 方法可以連接到 BLE 設備上的 GATT 服務, 返回一個 BluetoothGatt 實例對象, 你可以使用這個對象去 管理 GATT 客戶端操作.?

-- GATT 客戶端操作 : Android APP 可以調用 GATT Client (客戶端). BluetoothGattCallback 可以用于傳遞結果到 GATT 客戶端, 如 連接狀態 和 更進一步的 GATT Client 操作.



(2) GATT 數據交互示例


BLE 藍牙數據交互 :?

-- 界面 : 在下面的示例中, BLE 應用提供了一個 Activity 界面, 該 Activity 界面用于 連接, 展示數據, 展示 GATT 服務 和 設備支持的特性.?

-- BLE 藍牙服務類 : 基于用戶的輸入, 這個 Activity 界面可以與一個 BluetoothLeService 的服務進行交流, 該交流的本質就是 BLE 設備的 GATT 服務 與 Android 的 BLE API 進行交流.

-- BLE 藍牙服務類 示例代碼 :?

// BLE 設備可以通過該服務 與 Android 的 BLE API 進行互動 public class BluetoothLeService extends Service {private final static String TAG = BluetoothLeService.class.getSimpleName();private BluetoothManager mBluetoothManager;private BluetoothAdapter mBluetoothAdapter;private String mBluetoothDeviceAddress;private BluetoothGatt mBluetoothGatt;private int mConnectionState = STATE_DISCONNECTED;private static final int STATE_DISCONNECTED = 0;private static final int STATE_CONNECTING = 1;private static final int STATE_CONNECTED = 2;public final static String ACTION_GATT_CONNECTED ="com.example.bluetooth.le.ACTION_GATT_CONNECTED";public final static String ACTION_GATT_DISCONNECTED ="com.example.bluetooth.le.ACTION_GATT_DISCONNECTED";public final static String ACTION_GATT_SERVICES_DISCOVERED ="com.example.bluetooth.le.ACTION_GATT_SERVICES_DISCOVERED";public final static String ACTION_DATA_AVAILABLE ="com.example.bluetooth.le.ACTION_DATA_AVAILABLE";public final static String EXTRA_DATA ="com.example.bluetooth.le.EXTRA_DATA";public final static UUID UUID_HEART_RATE_MEASUREMENT =UUID.fromString(SampleGattAttributes.HEART_RATE_MEASUREMENT);// BLE API 中定義的不同的回調方法.private final BluetoothGattCallback mGattCallback =new BluetoothGattCallback() {@Override// BLE 設備的狀態改變 連接 斷開public void onConnectionStateChange(BluetoothGatt gatt, int status,int newState) {String intentAction;if (newState == BluetoothProfile.STATE_CONNECTED) {intentAction = ACTION_GATT_CONNECTED;mConnectionState = STATE_CONNECTED;broadcastUpdate(intentAction);Log.i(TAG, "連接到了 GATT 服務.");Log.i(TAG, "嘗試搜索服務:" +mBluetoothGatt.discoverServices());} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {intentAction = ACTION_GATT_DISCONNECTED;mConnectionState = STATE_DISCONNECTED;Log.i(TAG, "于 GATT 服務斷開連接.");broadcastUpdate(intentAction);}}@Override// BLE 設備中 新的 GATT 服務被發現public void onServicesDiscovered(BluetoothGatt gatt, int status) {if (status == BluetoothGatt.GATT_SUCCESS) {broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED);} else {Log.w(TAG, "發現 GATT 服務 : " + status);}}@Override// 特性讀取操作返回的數據public void onCharacteristicRead(BluetoothGatt gatt,BluetoothGattCharacteristic characteristic,int status) {if (status == BluetoothGatt.GATT_SUCCESS) {broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);}}...}; ... }

-- 廣播發送 : 當一個特定的回調被觸發, 它調用適當的?broadcastUpdate() 幫助方法, 將其當做一個 Action 操作傳遞出去.?

-- 注意藍牙心率?: 這部分的數據解析 與 藍牙心率測量 是一起被執行的.

-- 廣播發送 示例代碼 :?

private void broadcastUpdate(final String action) {final Intent intent = new Intent(action);sendBroadcast(intent); }private void broadcastUpdate(final String action,final BluetoothGattCharacteristic characteristic) {final Intent intent = new Intent(action);// This is special handling for the Heart Rate Measurement profile. Data// parsing is carried out as per profile specifications.// 心率監測規范的特殊處理// 數據解析在每個規范中完成if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {int flag = characteristic.getProperties();int format = -1;if ((flag & 0x01) != 0) {format = BluetoothGattCharacteristic.FORMAT_UINT16;Log.d(TAG, "心率格式 UINT16.");} else {format = BluetoothGattCharacteristic.FORMAT_UINT8;Log.d(TAG, "心率格式 UINT8.");}final int heartRate = characteristic.getIntValue(format, 1);Log.d(TAG, String.format("接收到心跳檢測 : %d", heartRate));intent.putExtra(EXTRA_DATA, String.valueOf(heartRate));} else {// 對于其它的規范, 寫出 HEX 十六進制格式的數據final byte[] data = characteristic.getValue();if (data != null && data.length > 0) {final StringBuilder stringBuilder = new StringBuilder(data.length);for(byte byteChar : data)stringBuilder.append(String.format("%02X ", byteChar));intent.putExtra(EXTRA_DATA, new String(data) + "\n" +stringBuilder.toString());}}sendBroadcast(intent); }
-- 處理廣播事件 : 在 DeviceControlActivity 中處理廣播事件, 示例代碼 :?

// 處理 Service 發起的的不同事件 // ACTION_GATT_CONNECTED: 連接到 GATT 服務. // ACTION_GATT_DISCONNECTED: 與 GATT 服務斷開. // ACTION_GATT_SERVICES_DISCOVERED: 發現 GATT 服務. // ACTION_DATA_AVAILABLE: 從 BLE 設備中接收數據, 數據可以是 read 或者 notification 操作的結果. private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {final String action = intent.getAction();if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {mConnected = true;updateConnectionState(R.string.connected);invalidateOptionsMenu();} else if (BluetoothLeService.ACTION_GATT_DISCONNECTED.equals(action)) {mConnected = false;updateConnectionState(R.string.disconnected);invalidateOptionsMenu();clearUI();} else if (BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED.equals(action)) {// 在用戶界面 顯示所有支持的服務 和 特性. displayGattServices(mBluetoothLeService.getSupportedGattServices());} else if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) {displayData(intent.getStringExtra(BluetoothLeService.EXTRA_DATA));}} };


8. 讀取 BLE 屬性


讀寫屬性簡介 :?

-- 讀寫屬性前提 : Android 應用連接到了 設備中的?GATT 服務, 并且發現了 各種服務 (特性集合), 可以讀寫其中的屬性.?

-- 讀寫屬性代碼示例?: 遍歷服務 (特性集合) 和 特性, 將其展示在 UI 界面中.

public class DeviceControlActivity extends Activity {...// 示范如何通過其所支持的 GATT 遍歷 服務 (Services) 和 特性 (Characteristics)// 在這個示例中, 我們將查詢出的數據填充到 UI 界面中的 ExpandableListView 中private void displayGattServices(List<BluetoothGattService> gattServices) {if (gattServices == null) return;String uuid = null;String unknownServiceString = getResources().getString(R.string.unknown_service);String unknownCharaString = getResources().getString(R.string.unknown_characteristic);ArrayList<HashMap<String, String>> gattServiceData =new ArrayList<HashMap<String, String>>();ArrayList<ArrayList<HashMap<String, String>>> gattCharacteristicData= new ArrayList<ArrayList<HashMap<String, String>>>();mGattCharacteristics =new ArrayList<ArrayList<BluetoothGattCharacteristic>>();// 遍歷 GATT 服務for (BluetoothGattService gattService : gattServices) {HashMap<String, String> currentServiceData =new HashMap<String, String>();uuid = gattService.getUuid().toString();currentServiceData.put(LIST_NAME, SampleGattAttributes.lookup(uuid, unknownServiceString));currentServiceData.put(LIST_UUID, uuid);gattServiceData.add(currentServiceData);ArrayList<HashMap<String, String>> gattCharacteristicGroupData =new ArrayList<HashMap<String, String>>();// 獲取服務中的特性集合List<BluetoothGattCharacteristic> gattCharacteristics =gattService.getCharacteristics();ArrayList<BluetoothGattCharacteristic> charas =new ArrayList<BluetoothGattCharacteristic>();// 循環遍歷特性集合for (BluetoothGattCharacteristic gattCharacteristic :gattCharacteristics) {charas.add(gattCharacteristic);HashMap<String, String> currentCharaData =new HashMap<String, String>();uuid = gattCharacteristic.getUuid().toString();currentCharaData.put(LIST_NAME, SampleGattAttributes.lookup(uuid,unknownCharaString));currentCharaData.put(LIST_UUID, uuid);gattCharacteristicGroupData.add(currentCharaData);}mGattCharacteristics.add(charas);gattCharacteristicData.add(gattCharacteristicGroupData);}...} ... }



9. 接收 GATT 通知


GATT 通知簡介 :?

-- 特性改變通知 : 當 BLE 設備中的一些特殊的特性改變, 需要通知與之連接的 Android BLE 應用.

-- 代碼示例 : 使用?setCharacteristicNotification() 方法為特性設置通知.

private BluetoothGatt mBluetoothGatt; BluetoothGattCharacteristic characteristic; boolean enabled; ... // 設置是否監聽某個特性改變 mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); ... BluetoothGattDescriptor descriptor = characteristic.getDescriptor(UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG)); descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); mBluetoothGatt.writeDescriptor(descriptor);
-- 特性改變回調?: 一但特性開啟了改變通知監聽, 如果特性發生了改變, 就會回調 BluetoothGattCallback 接口中的?onCharacteristicChanged() 方法.

@Override // 特性通知 public void onCharacteristicChanged(BluetoothGatt gatt,BluetoothGattCharacteristic characteristic) {broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic); }


10. 關閉 APP 中的 BLE 連接



關閉 BLE 設備連接 :?

-- 關閉方法 : 一旦結束了 BLE 設備的使用, 調用 BluetoothGatt 的 close() 方法, 關閉 BLE 連接, 釋放相關的資源.

-- 關閉示例 :?

public void close() {if (mBluetoothGatt == null) {return;}mBluetoothGatt.close();mBluetoothGatt = null; }




轉載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/50515359

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久精品国产v日韩v亚洲 | 成人黄色大片网站 | 国产一区电影在线观看 | 亚洲国产网站 | 免费涩涩网站 | 国产无遮挡又黄又爽馒头漫画 | 日本黄色一级电影 | 一区二区三区在线影院 | 国产69精品久久久久99尤 | 中文字幕在线观看的网站 | 久久手机在线视频 | 久99视频 | 99精品久久久久久久 | 一二区av| 欧美在线视频a | 亚洲一级免费观看 | 婷婷激情影院 | 在线观看黄a | 81国产精品久久久久久久久久 | 日韩激情久久 | av免费看在线 | 日本精a在线观看 | 国产 中文 日韩 欧美 | 婷五月激情 | 国产高清免费av | 国产99久 | 久久久福利视频 | 国产最新在线 | 在线三级av | 国产区在线看 | 五月婷婷综 | 精品国产一区在线观看 | 开心激情久久 | 日韩欧美视频在线观看免费 | 日韩精品一区二区三区在线视频 | 国内精品免费久久影院 | 欧美一区二区精品在线 | 成人午夜电影在线 | 久久视频精品在线观看 | 婷婷六月天综合 | 韩国av免费观看 | 日韩理论在线观看 | 亚洲伦理中文字幕 | 免费人成在线观看 | 久久久91精品国产一区二区三区 | 婷婷久久综合九色综合 | 婷婷六月在线 | 超碰97在线看 | 欧美精品色 | 992tv人人草| 亚洲欧洲精品一区二区精品久久久 | 色播六月天 | 六月丁香社区 | 精品一区二区av | 91精品视频在线免费观看 | 欧美男男激情videos | 最新国产精品拍自在线播放 | 久久精品国产一区二区电影 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 亚洲精品国产精品国自 | 九九热在线精品 | 国产高清小视频 | 中文字幕视频一区二区 | 亚洲综合激情网 | 久久 亚洲视频 | 日韩免费三级 | 久久综合9988久久爱 | 久久久福利视频 | 国产xxxx性hd极品 | 热九九精品 | 黄色av大片| 超碰在97| 四虎影视8848aamm| 手机在线观看国产精品 | 成年人黄色大片在线 | 香蕉免费 | 在线观看国产区 | 天天干天天色2020 | 免费视频区 | 欧美成人精品三级在线观看播放 | 免费看亚洲毛片 | 97视频在线观看免费 | 麻豆91精品视频 | 天天看天天干天天操 | 狠狠激情中文字幕 | 一二区精品 | 亚洲精品国产综合99久久夜夜嗨 | 在线天堂中文www视软件 | 国产成人久久精品77777 | 日韩在线观看av | 成人a在线观看高清电影 | 91激情视频在线 | 91大神电影 | 成人免费在线视频 | 国产精品一区欧美 | 婷婷色中文字幕 | 久久综合九色综合欧美狠狠 | 在线观看中文字幕视频 | 日韩欧美精品在线观看视频 | 国产五十路毛片 | 日产乱码一二三区别免费 | 四川bbb搡bbb爽爽视频 | 伊人久久av | 中文字幕免费在线 | 久草电影网 | 国产韩国精品一区二区三区 | 日韩欧美在线综合网 | 国产精品久久久久免费观看 | 91高清免费看 | 黄色毛片网站在线观看 | 日韩三级久久 | 成人中文字幕在线 | 91久久久久久久一区二区 | 天天伊人狠狠 | 丁香婷婷在线观看 | 日韩区欠美精品av视频 | www视频在线播放 | 色综合天天做天天爱 | 精品久久久久久亚洲综合网站 | 88av色| 国产视频网站在线观看 | 亚洲人成人在线 | 国产日产亚洲精华av | 成人一级片在线观看 | 国产精品完整版 | 奇米影视777影音先锋 | 久久综合九九 | 国产精品亚州 | 欧美另类xxxx | 亚洲每日更新 | 免费一级特黄录像 | 51久久成人国产精品麻豆 | 四虎影视8848dvd | 中文字幕成人在线观看 | 一区二区三区中文字幕在线观看 | 亚洲精品免费在线 | 久久99久国产精品黄毛片入口 | 欧美国产一区在线 | 欧美另类sm图片 | 深爱激情av| 久久观看| 97福利在线| 久久精品视频99 | 蜜臀av夜夜澡人人爽人人桃色 | 久99精品 | 免费看片成人 | 国产黄在线免费观看 | 色婷婷综合成人av | 日韩系列在线观看 | 激情视频区 | 国产成人久久精品77777综合 | 亚洲乱码精品久久久久 | 中文字幕丰满人伦在线 | 国产精品18久久久久久首页狼 | 日韩精品观看 | 夜夜夜夜夜夜操 | 不卡的av| 午夜视频在线观看一区二区三区 | 91久久久久久久一区二区 | 日韩网站在线观看 | 国产女人40精品一区毛片视频 | 精品国产一区二区三区av性色 | 亚洲电影网站 | 十八岁以下禁止观看的1000个网站 | 精品久久久国产 | 在线观看不卡的av | 五月婷婷综合久久 | 在线观看免费高清视频大全追剧 | 狠狠地操| 久久大香线蕉app | 日韩av进入 | 特级a毛片 | 中文字幕久久精品一区 | a黄在线观看 | 成年人免费看av | 欧美国产91 | 欧美一区成人 | 亚洲精品一区二区三区四区高清 | 国产精品美女999 | 欧美日韩国产页 | 国产在线色站 | 久久中文欧美 | 超碰97久久| 国产免费久久精品 | 在线看片一区 | 国内丰满少妇猛烈精品播放 | 国产xvideos免费视频播放 | 在线观看 亚洲 | 日韩精品一区二区三区在线视频 | 久久看片网站 | 97成人超碰 | 日操干 | 日本精品一区二区三区在线观看 | 久久久久亚洲精品国产 | 国产精品午夜久久久久久99热 | 欧美一级日韩免费不卡 | 亚洲欧美一区二区三区孕妇写真 | 久草电影在线 | 欧美成人中文字幕 | 久久久精选 | 亚洲欧洲国产视频 | 欧美一级日韩三级 | 国产香蕉视频在线观看 | 五月天六月婷 | 国产日产在线观看 | 激情av一区二区 | 亚洲欧美日韩国产精品一区午夜 | 精品国产一区二区三区蜜臀 | 免费观看视频黄 | 欧美日韩3p| 亚洲精品理论 | 国内一区二区视频 | 国产亲近乱来精品 | 亚洲国产成人在线 | 亚洲精品色视频 | 亚洲一级黄色片 | 亚洲成人资源在线观看 | 99精品视频在线观看播放 | 精品在线观看一区二区 | 干干操操| av青草| 麻豆91视频 | 亚洲欧美日韩在线一区二区 | 国产精品一区二区三区久久 | 伊人www22综合色 | 天天射狠狠干 | 久久久久久免费视频 | 精品国产一区二区三区在线 | 91大神精品视频在线观看 | 免费看的国产视频网站 | 91av欧美| 亚洲涩涩涩 | 天天天射| 亚州精品视频 | 91热视频在线观看 | 国产经典三级 | 国产综合福利在线 | 黄影院| 奇米先锋 | 一区二区三区在线影院 | av不卡免费在线观看 | 日韩a在线观看 | 日韩免费一级电影 | 国产91精品一区二区麻豆网站 | 全久久久久久久久久久电影 | 天天天干天天射天天天操 | 精品一二三区 | 啪啪凸凸 | 久久人人添人人爽添人人88v | 国产情侣一区 | 免费a视频在线观看 | 成人av免费看 | 蜜臀一区二区三区精品免费视频 | 在线观看岛国片 | 中文字幕亚洲国产 | 国产免费一区二区三区最新6 | 精品天堂av | 日韩精品久久中文字幕 | 天天操天天色天天射 | 国产精品久久久久久久久久东京 | 国产精品久久久久高潮 | 午夜精品久久久久久中宇69 | 最新av免费| 国产精品一区二区无线 | 日韩中文字幕在线观看 | 青青草国产精品视频 | 欧美一区二区在线刺激视频 | 在线观看日韩 | 久久成| 国产一区二区三区免费在线观看 | 狠色在线 | 国产福利精品一区二区 | 黄色a在线 | 久久午夜色播影院免费高清 | 四川妇女搡bbbb搡bbbb搡 | 91久久久久久国产精品 | 一区二区亚洲精品 | 在线观看色视频 | 久久久私人影院 | 国产美女视频免费 | 成年人国产精品 | 国产资源在线播放 | 在线小视频你懂的 | 久久久久日本精品一区二区三区 | 久久97视频| 日日日操操 | 亚洲撸撸 | 91在线免费播放 | 五月婷婷六月丁香激情 | 五月激情丁香图片 | 国产午夜精品在线 | 天天综合色网 | 精品久久1 | 99久久精品免费看国产四区 | 亚洲国产欧洲综合997久久, | 日韩精品免费在线播放 | 99综合久久| 亚洲成人国产精品 | 深夜精品福利 | 婷婷色网视频在线播放 | 操操碰| 黄色网址中文字幕 | 国产成人精品a | 国产精品18久久久久久首页狼 | 国产三级国产精品国产专区50 | 成人夜晚看av | 国产剧情av在线播放 | av3级在线 | 日韩一级黄色片 | 久久理伦片 | 91九色国产蝌蚪 | 91麻豆国产福利在线观看 | 久久视了| 色综合天 | 一区二区三区四区在线 | 亚洲电影自拍 | 日韩一区二区免费在线观看 | 五月天网站在线 | 亚洲亚洲精品在线观看 | 日韩精品一区二区在线观看视频 | 国产91成人 | 久久久久久久久久久网站 | 精品视频免费 | 欧美日韩一区二区三区不卡 | 欧洲精品视频一区二区 | 天堂av最新网址 | 91高清在线看 | 免费网站在线 | 国产精品theporn | 91av视频在线播放 | 国产综合在线观看视频 | 国产黄色一级大片 | 免费亚洲黄色 | 中文视频一区二区 | 精品久久九九 | 久久精品欧美一区 | 亚洲精品国产精品久久99热 | 欧美成人播放 | 91高清不卡 | 成人免费在线网 | 天天色官网 | 综合色综合色 | 97成人在线观看 | 午夜精品久久久久久久久久久 | 麻豆视频在线免费看 | 国产精选在线 | 欧美日韩一区二区免费在线观看 | 91av手机在线观看 | 一级一片免费看 | 精品一区二区精品 | 免费91在线 | 国产裸体视频网站 | 国产99久久久国产精品 | 三级黄色在线 | 久草在线网址 | 欧美日韩国产精品一区二区亚洲 | 99久久综合国产精品二区 | 亚洲色图av | 奇米影视8888 | 国产精品美女999 | 美女久久视频 | 一级黄色片在线免费观看 | 国产一区免费视频 | 久草爱视频 | 在线免费av观看 | 四虎天堂| 视频一区二区精品 | 激情婷婷综合网 | 国产亚洲欧美精品久久久久久 | av网站手机在线观看 | 国产精品毛片完整版 | 亚洲小视频在线观看 | 亚洲精品久久久蜜臀下载官网 | a级国产乱理论片在线观看 特级毛片在线观看 | 国产精品mv在线观看 | 精品国产亚洲在线 | 夜夜婷婷 | 992tv人人网tv亚洲精品 | 国产在线播放一区 | 丁五月婷婷 | 最新超碰在线 | 中文字幕亚洲精品日韩 | 欧美伦理一区二区三区 | 波多野结衣理论片 | av超碰在线| 亚洲91av| 精品乱码一区二区三四区 | 国产高清免费在线观看 | 亚洲成av人影院 | 日韩一区二区免费视频 | 精品视频在线视频 | 手机在线观看国产精品 | 五月天久久狠狠 | 91精品国产高清自在线观看 | av黄色在线观看 | www.人人草| 五月宗合网 | 国产成人精品免高潮在线观看 | 日本中文一级片 | 免费在线国产 | 国产a国产 | 成人在线黄色电影 | 99热在| 92国产精品久久久久首页 | 欧美日韩视频观看 | 日韩婷婷 | 在线免费性生活片 | 久久午夜鲁丝片 | 国内精品免费 | 久久成人国产精品 | 黄色小网站在线 | 国产欧美在线一区二区三区 | 久久国产精品免费观看 | 操操操av | 色婷婷亚洲 | 97操碰| 久久刺激视频 | 日日干av | 中文字幕日韩精品有码视频 | 国内精品福利视频 | 中文字幕在线影院 | 日韩有码在线观看视频 | 亚洲成aⅴ人在线观看 | 亚洲综合成人专区片 | 亚洲少妇自拍 | 午夜的福利 | 成人在线视频免费观看 | a精品视频 | 日韩欧美一二三 | 人人射人人插 | 欧美性生活免费看 | 欧美黑吊大战白妞欧美 | 97香蕉超级碰碰久久免费软件 | 午夜视频在线观看网站 | 久久综合免费视频影院 | 免费av看片 | 亚洲成人黄色 | 欧美精品一二三 | 国产一区二区高清不卡 | 亚洲涩综合 | 日日夜夜网 | 欧美激情视频在线观看免费 | 欧美一级爽 | 九九热在线视频免费观看 | 亚洲精品国产精品国自产在线 | 最近中文字幕完整视频高清1 | 婷婷色婷婷| 永久免费毛片在线观看 | 24小时日本在线www免费的 | 亚洲精品国偷自产在线99热 | 免费在线色 | 日本中文字幕高清 | 91资源在线| 999精品| 国产综合激情 | 亚洲成色| 国产精品久久99综合免费观看尤物 | 伊人成人激情 | 日韩欧美xxx | 久久99精品久久只有精品 | 久日视频| 日本电影久久 | 91激情 | 日韩欧美在线国产 | 在线看日韩 | 欧美久久久久久久久中文字幕 | 91视频麻豆视频 | 日韩精品免费一区 | 亚洲一区在线看 | 国产免费看| 久草免费新视频 | 成人免费 在线播放 | 中文字幕国产在线 | 精品一二三四五区 | 亚州中文av| 新版资源中文在线观看 | 国产亚洲免费观看 | 五月婷影院 | 欧美成年人在线观看 | 婷婷丁香综合 | 在线免费看黄色 | 中文字幕乱码亚洲精品一区 | 999视频网 | 欧美一二三区在线播放 | 91天堂素人约啪 | 91精品入口 | 国产亲近乱来精品 | 日本夜夜草视频网站 | 日韩在线视频国产 | 中文字幕色站 | 69精品在线观看 | 日韩精品一区二区免费视频 | 麻豆91网站 | av大片网站 | 色在线视频网 | 免费一级片观看 | 久久97久久97精品免视看 | 久久精品中文字幕一区二区三区 | 91亚洲精品国偷拍自产在线观看 | 99视频在线免费播放 | 一本一道久久a久久精品 | 亚州国产精品久久久 | 亚洲a免费 | 香蕉视频在线观看免费 | 中文字幕有码在线播放 | 久久国产精品偷 | 久久久精品国产一区二区三区 | 日韩欧美综合视频 | 女人魂免费观看 | 婷婷丁香花五月天 | 成人国产精品久久久 | 麻豆免费精品视频 | 中文字幕在线视频精品 | 日韩精品中文字幕一区二区 | 欧美视频www| 久久精品欧美一区二区三区麻豆 | av成人免费 | 久草爱 | av一本久道久久波多野结衣 | 黄色成品视频 | 韩国av电影在线观看 | 久久精品看片 | 成人av网站在线播放 | 99视频精品免费视频 | 国产精品国产三级国产aⅴ无密码 | 国产午夜三级 | 97精品超碰一区二区三区 | 国产精品久久99精品毛片三a | 亚洲国产成人精品电影在线观看 | 久久视了| 麻豆手机在线 | 国产精品美女在线 | 狠狠色丁香婷婷综合最新地址 | 有码一区二区三区 | 中文日韩在线 | 日本精品一 | 亚洲欧洲精品一区二区精品久久久 | 超碰久热| 五月婷婷丁香色 | 99久久9| 中文字幕在 | 免费看污黄网站 | 天天草天天插 | 久久久久久久综合色一本 | 综合久久精品 | 欧美激情视频久久 | www.午夜视频 | 亚州黄色一级 | 天天艹天天爽 | 91精品视频免费观看 | 玖玖视频精品 | 久久久久久网站 | 超碰人人91 | 天天操天天添 | 久久精品久久精品久久 | av日韩国产 | 91在线观看视频 | 色婷婷国产精品一区在线观看 | 婷婷色 亚洲| 日日干狠狠操 | 香蕉视频在线免费看 | 亚洲综合色播 | 99久久婷婷国产精品综合 | 伊人天堂av | 久久九九影视 | 久久精品亚洲综合专区 | 免费日韩| 国产美女免费 | 在线天堂v | 九色精品免费永久在线 | 免费视频一区 | 国产成人福利在线观看 | 国产在线成人 | 人人爽人人爽人人爽学生一级 | av在线等 | wwwwwww色| 色香蕉在线 | 狠狠色伊人亚洲综合网站野外 | 婷色| 五月网婷婷 | 美女精品 | 久久免费高清视频 | 亚洲专区在线播放 | 麻豆系列在线观看 | 久久99热精品这里久久精品 | 开心激情综合网 | 欧美午夜精品久久久久久孕妇 | 中文字幕a∨在线乱码免费看 | 国产日韩视频在线 | 手机在线观看国产精品 | 亚洲精品午夜久久久 | 国内精品久久久久久久影视简单 | 亚洲第一香蕉视频 | 伊人中文网 | 国产女人18毛片水真多18精品 | 啪啪资源 | 久久国产精品久久精品 | 91天天操| 夜夜澡人模人人添人人看 | 91精品国产九九九久久久亚洲 | 日韩av高潮 | 亚洲天堂网在线播放 | 中文资源在线播放 | 夜夜躁狠狠躁日日躁视频黑人 | 久久久久久久久综合 | 精品一二三四五区 | 久久人人爽人人爽 | 91最新视频在线观看 | 亚洲最新毛片 | 日本黄色免费在线 | 一区二区在线电影 | 999成人| 日夜夜精品视频 | 久久99国产一区二区三区 | 精精国产xxxx视频在线播放 | 久久久亚洲网站 | 久久国产精品免费 | 国产精品都在这里 | 黄色在线观看网站 | 亚洲国产小视频在线观看 | av免费观看高清 | 久国产在线播放 | 888av| 久久久国产精品一区二区中文 | 91九色国产蝌蚪 | 97在线视频观看 | 中文字幕在线观看一区二区三区 | 在线观看中文av | 欧美一二三四在线 | www日韩在线观看 | 在线а√天堂中文官网 | 日日久视频 | 美女在线免费观看视频 | 免费观看mv大片高清 | 日韩毛片久久久 | 一区二区亚洲精品 | 91av在| 一级黄色在线免费观看 | 欧美成人性网 | 天天操天天摸天天干 | 国产污视频在线观看 | 夜夜躁狠狠燥 | 韩国在线一区二区 | 久久综合九色综合网站 | 日韩精品久久中文字幕 | 欧美日韩国产二区三区 | 久久久国产精品一区二区中文 | www.天天色.com| 青春草视频在线播放 | 黄色在线观看免费网站 | 亚洲欧洲美洲av | 国产区欧美 | 在线视频久| 一区二区精品视频 | 日日爱影视 | 开心色激情网 | 伊人国产视频 | 日本性xxxxx| 国产中文a | 亚洲精品在线资源 | 久久国内精品视频 | 色中色亚洲 | 亚洲精品88欧美一区二区 | 日韩精品无码一区二区三区 | 在线观看免费中文字幕 | 国产精品18久久久久久久久 | 亚洲精品免费视频 | 国产精品久久久区三区天天噜 | 99久久精品费精品 | 免费 在线 中文 日本 | 国产亚洲va综合人人澡精品 | 伊人久久精品久久亚洲一区 | 黄色av电影在线观看 | 97在线观看 | 欧美日韩aaaa | 黄色的视频网站 | 国产真实精品久久二三区 | 中文字幕久久亚洲 | www.色就是色 | 欧美成a人片在线观看久 | 欧美 日韩 国产 成人 在线 | 97av.com| 中文视频一区二区 | 国产精品综合久久 | 成人一区二区三区在线 | 天天射天天干天天操 | 久久综合色播五月 | 成片人卡1卡2卡3手机免费看 | 中文字幕在线观看播放 | 精品久久国产一区 | 欧美精品乱码久久久久久 | 色五丁香 | 视频在线观看91 | 日韩大片在线免费观看 | 欧美一级特黄高清视频 | 成人免费观看视频网站 | 成人在线网站观看 | 久久草网 | 久久精品久久久久电影 | 玖玖在线免费视频 | 国产一区国产精品 | 久 久久影院 | 91色综合| 综合伊人久久 | 国产成人区 | 久草视频在线资源站 | 在线免费观看麻豆视频 | 天天干,天天射,天天操,天天摸 | 天天在线视频色 | 国产精品久久久毛片 | 日韩精品视频免费 | 成人中文字幕在线观看 | 91黄色视屏 | 天天射天天 | 中国精品一区二区 | 在线观看色网 | 91在线视频 | 在线观看一 | 人人cao| 国产最新在线观看 | 一级片免费观看视频 | 在线观看中文字幕 | 九九国产精品视频 | 久久久国产一区二区 | 国产手机在线观看视频 | 黄色大片网 | 精品 激情 | 免费黄色av.| 亚洲黄色激情小说 | 一区二区日韩av | 麻豆一区在线观看 | 91精品在线观看入口 | 一级免费片 | 亚洲国产一区av | a爱爱视频 | 国产理论一区二区三区 | 狠狠干成人综合网 | 天天干夜夜爱 | 最新高清无码专区 | av电影在线免费观看 | 亚洲精品免费观看 | 香蕉视频国产在线观看 | 成人免费看片网址 | 日韩精品免费在线视频 | 999国产在线 | 亚洲永久精品在线 | 久久视频在线观看免费 | 97超碰成人在线 | 亚洲在线日韩 | 右手影院亚洲欧美 | 玖玖精品在线 | 中国一级片视频 | 久草在线免费资源站 | 日韩电影在线看 | 波多野结衣电影一区 | 伊人网综合在线观看 | 男女激情片在线观看 | 国产精品11 | 日韩久久精品一区二区 | 激情偷乱人伦小说视频在线观看 | 韩国一区视频 | 99久久99久久精品免费 | 国产视频 亚洲精品 | 黄色网www| 五月激情在线 | 亚洲日本va中文字幕 | 六月丁香综合 | 在线观看日韩精品视频 | 日韩精品免费在线播放 | 91视频在线免费下载 | 91精品国产麻豆国产自产影视 | 天天干天天操天天干 | 激情影音先锋 | 国产小视频国产精品 | 五月天激情综合 | 日韩欧美高清一区二区 | 91av片 | 免费观看国产视频 | www.久久91| 日本成人中文字幕在线观看 | 国产精品久久免费看 | 久久综合加勒比 | 色综合天天综合 | www国产亚洲| 婷婷精品国产一区二区三区日韩 | 欧美一二三视频 | 就色干综合 | 黄色片免费看 | 人人插人人搞 | 婷婷色五 | 久久久久久久久久久福利 | 日韩免费b| 亚洲国产精品久久久久婷婷884 | 一本—道久久a久久精品蜜桃 | 麻豆你懂的 | 韩国av电影在线观看 | 九草在线视频 | 又黄又爽免费视频 | 狠狠色丁香久久综合网 | 日韩手机在线 | 国产黄视频在线观看 | 国产色a在线观看 | 婷婷丁香久久五月婷婷 | 日本视频精品 | 日本超碰在线 | 成年人黄色在线观看 | 2019免费中文字幕 | 激情动态| 成人免费观看大片 | 丁香九月婷婷综合 | 精品日韩在线 | 成人免费网站视频 | 久久8| 日本中文字幕高清 | 日韩在线观看视频一区二区三区 | 欧美二区视频 | 在线观看韩日电影免费 | 在线国产一区二区三区 | 99久久精品日本一区二区免费 | 韩日在线一区 | 久久电影网站中文字幕 | 亚洲九九九在线观看 | 日韩色在线 | 精品一区二三区 | 欧美日韩不卡在线视频 | www.福利视频 | av资源免费在线观看 | 亚洲精品久久久蜜桃直播 | 99视频久| 国产亚洲精品久久久久久无几年桃 | 免费看毛片在线 | 精油按摩av | 精品国产伦一区二区三区观看说明 | 黄污视频网站大全 | 午夜av大片 | 国产日韩欧美精品在线观看 | 欧美a级一区二区 | 欧美久久久久久 | 国产一区二区成人 | 婷婷丁香激情五月 | 成人久久亚洲 | 福利av在线 | 亚洲一区 影院 | 日韩成人免费在线 | 久久久黄色av | 久久久久国产精品免费免费搜索 | 免费看av在线 | www色网站 | 国产一区二区三区视频在线 | 亚洲天堂网视频 | 在线蜜桃视频 | 国产精品一区二区久久国产 | 午夜精品视频免费在线观看 | 91精品入口 | 91在线操 | 狠狠久久 | 日韩美女久久 | 三级黄色片在线观看 | 国产成人精品一区二区三区在线观看 | 欧美吞精| 久久久久久久久久久久久久免费看 | 欧美人人爱 | 超碰在线资源 | 欧美激情视频一二区 | 日韩在线国产精品 | 久久精久久精 | 最新国产中文字幕 | 国产亚洲精品久 | 欧美精品亚洲精品日韩精品 | 天堂av色婷婷一区二区三区 | 国产专区免费 | 午夜精品视频在线 | 婷婷九月丁香 | 国产成人精品综合久久久久99 | 91完整视频 | 午夜私人影院久久久久 | 99在线观看精品 | 天天射天天添 | 99久久夜色精品国产亚洲96 | 国产精品99久久久精品免费观看 | 国产香蕉久久精品综合网 | 97碰在线视频 | 久久www免费人成看片高清 | 久久97久久97精品免视看 | 去干成人网| 国产亚洲视频中文字幕视频 | 国产美女在线观看 | 亚洲成人午夜av | 日本乱码在线 | 色天天 | 国产午夜精品免费一区二区三区视频 | 狠狠狠狠狠操 | 亚洲精品大片www | 中文字幕一区在线 | 热re99久久精品国产99热 | 久久亚洲区 | 日本二区三区在线 | 欧美一区中文字幕 | 成人在线播放免费观看 | 综合网欧美 | 亚洲黄色在线播放 | 久久黄色影院 | 国产亚洲资源 | 日韩在线免费电影 | 91在线精品秘密一区二区 | 黄色一级免费网站 | 天天色天天上天天操 | 欧美黑人巨大xxxxx | 免费三级a| 免费精品国产va自在自线 | 久久艹人人 | 日本少妇高清做爰视频 | 高清av中文在线字幕观看1 | 97在线观看 | 久久99在线 | 成人在线观看免费 | 色91在线| 亚洲性少妇性猛交wwww乱大交 | 亚洲欧美视频在线播放 | 国产视频一区二区在线观看 | 精品九九九 | 娇妻呻吟一区二区三区 | 婷婷丁香激情综合 | 国产日韩精品视频 | 天天干夜夜操视频 | 婷婷中文字幕 | 欧美日韩国产一区二 | 亚洲专区中文字幕 | 超碰夜夜| 91免费视频黄 | 日韩综合第一页 | 亚洲三级影院 | 81国产精品久久久久久久久久 | 黄色片视频在线观看 | 亚洲国产网站 | 国产精品成人久久 | 欧美精品一二 | 日韩欧美69 | 最新中文在线视频 | 国内精品久久久久影院男同志 | 日韩a级免费视频 | 免费网址你懂的 | 奇米四色影狠狠爱7777 | 欧美 日韩 视频 | 亚洲精品午夜一区人人爽 | 最近免费中文字幕mv在线视频3 | 中文在线a在线 | av中文天堂 | 在线免费黄色片 | 国产高清专区 | 九九视频免费观看视频精品 | 一级免费av| 99精品一级欧美片免费播放 | 丁香免费视频 | 91精品免费看 | 韩日色视频 | 色网站免费在线观看 | 免费看在线看www777 | 亚洲国产精品久久久久婷婷884 | 日韩欧美高清 | 成人黄色毛片视频 | 2019免费中文字幕 | 99视频偷窥在线精品国自产拍 | 欧美日韩不卡在线 | 1024手机基地在线观看 | 97操操操| 亚洲资源在线 | 国产亚洲精品久久久久久电影 | 狠狠色噜噜狠狠狠合久 | 国产一区二区在线免费播放 | 九九九九免费视频 | 超碰免费公开 | 国产精品中文在线 | 国产日韩中文字幕在线 | 日韩91av| 久久狠狠亚洲综合 | 久久免费影院 | 国产h片在线观看 | 国产中文字幕在线免费观看 | 免费av成人在线 | 国产黄影院色大全免费 | 又湿又紧又大又爽a视频国产 | 亚洲精品一区二区三区高潮 | 日日碰狠狠躁久久躁综合网 | 亚洲天堂网在线视频观看 | 中文字幕一区av | 天天骚夜夜操 | 久久试看| 欧美日韩亚洲一 | 在线欧美a | 精品毛片一区二区免费看 | 人人澡人人草 | 国产成人精品999在线观看 | 中文字幕在线观看免费高清电影 | 欧美色噜噜 | 国产日韩精品在线观看 | 欧美激情片在线观看 | 午夜影视一区 |