punlic final class BluetoothGatt
繼承自Object , 實現了BluetoothProfile接口
/**
相關的藍牙協議可http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=2&CurRec=1&recid=&filename=1013177885.nh&dbname=CMFD201302&dbcode=CMFD&pr=&urlid=&yx=&uid=WEEvREcwSlJHSldTTGJhYlQ4RW9HZzBWckhnY3Z2bTR6VjJ5ZlJsL2FiMkRZcHNnazlOUEJud0pMeW9xLzlycnRqND0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&v=MjQzNTBkdUZ5emdVTHJLVkYyNkhiSy9HZG5FcXBFYlBJUjhlWDFMdXhZUzdEaDFUM3FUcldNMUZyQ1VSTCtmYis=
**/
簡述:
提供了BluetoothGATT Profile 的公共API
這個類提供了GATT功能(functionality ) 可以與Bluetooth Smart或者是Smart Ready 設備(devces)進行通信;
要想連接外設(peripheral device) , 需要創建一個 BluetoothGattCallback (PS 這個相當於回調函數) ;
然后調用BluetoothDevice類的connectGatt(Context, boolean, BluetoothGattCallback)才可以獲得該類的實例(instance) ; 具有GATT的設備是可以通過使用 藍牙設備搜索()或者 低功耗的藍牙(BLE)搜索到的;
PS : buletooth 與ble 概念略有不同 ;
Bluetooth GATT 中的常量:(不全)
GATT_FAILURE : 標識一個失敗的GATT操作 這個值是 257 (0x00000101)
GATT_SUCCESS :一個成功的GATT操作 這個值是:0 (0x00000000) PS 符合 "非零即為真 執行成功"
常用函數:
void close() : 關閉該GATT客戶端 ,當與GATT client無關的時候 , 盡可能早的調用這個方法
boolean connect() : 連接到遠程設備 , 這個方法用於 當連接斷開的時候 , 重新連接一個遠程的設備 ; 如果這個設備不再范圍內. 那么只要這個設備回到覆蓋的范圍中,就會觸發重新連接 PS :這個方法解決了實際生活中的很多問題呀
void disconnect() : 斷開建立的連接,或者是終止當前正在適配的連接進程,這個需要權限
discoverServices() : 搜索一個遠程設備的服務,以及characteristics 和descriptors , 這是一個異步的操作, 一旦搜索服務完成 , 會觸發剛才的那個Callback函數的 回調方法:onServicesDiscovered(BluetoothGatt, int);
如果成功的搜索到服務的話 , 可以使用 getServices()方法檢索
返回true 代表
getConnectedDevices() 已經不推薦 使用了 , 被 Bluetoothmanager的getConnectedDevices(int) 方法替代
-----------------------
與數據交互有關的方法:
BluetoothGattService getService(UUID uuid)
如果遠程設備支持UUID的話, 會返回一個 BluetoothGattService對象 , 這個方法需要進行 搜索藍牙之后給出一個bluetoothDevice對象
如果存在有大量的相同的UUID標識的Service存在的話, 這里只會返回第一個service實例
List<BluetoothGattService> getServices() 返回遠程設備提供的所有的服務(Service) ,返回的結果即為提供的服務,如果是null
boolean readCharacteristic(BluetoothGattCharacteristic characteristic)
觸發回調函數的事件 , 以為讀取遠程device指定的characteristic ,
boolean readDescriptor(BluetoothGattDescriptor descriptor) 讀取描述.....
===========================================================================================================原文:
http://wear.techbrood.com/reference/android/bluetooth/BluetoothGatt.html#readCharacteristic(android.bluetooth.BluetoothGattCharacteristic)