BluetoothGatt API

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)

时间: 2024-10-15 22:41:08

BluetoothGatt API的相关文章

Android BLE与终端通信(五)——Google API BLE4.0低功耗蓝牙文档解读之案例初探

Android BLE与终端通信(五)--Google API BLE4.0低功耗蓝牙文档解读之案例初探 算下来很久没有写BLE的博文了,上家的技术都快忘记了,所以赶紧读了一遍Google的API顺便写下这篇博客心得 Google API:http://developer.android.com/guide/topics/connectivity/bluetooth-le.html#terms 其实大家要学习Android的技术,Google的API就是最详细的指导书了,而且通俗易懂,就算看不懂

Android BLE 蓝牙低功耗教程,中央BluetoothGatt和周边BluetoothGattServer的实现

Android4.3 规范了BLE的API,但是直到目前的4.4,还有些功能不完善. 在BLE协议中,有两个角色,周边(Periphery)和中央(Central):周边是数据提供者,中央是数据使用/处理者:在iOS SDK里面,可以把一个iOS设备作为一个周边,也可以作为一个中央:但是在Android SDK里面,直到目前最新的Android4.4.2,Android手机只能作为中央来使用和处理数据:那数据从哪儿来?从BLE设备来,现在的很多可穿戴设备都是用BLE来提供数据的. 一个中央可以同

蓝牙API翻译____①_____android.bluetooth介绍

前言:最近在学习蓝牙开发,借此机会翻译下官网文档中关于蓝牙的部分,然后学习下如何利用蓝牙开发蓝牙聊天软件和文件传输软件,顺便提升自己的英文文档阅读能力. 英文原地址:  http://www.androidcommunitydocs.com/reference/android/bluetooth/package-summary.html 正文: android.bluetooth包提供了一些管理蓝牙功能的类,例如扫描附近的蓝牙设备.连接设备以及管理设备间的数据传输. 如果需要更详细的信息,可以在

百度地图API实现批量地址解析

1.前言 写这篇文章的原因是最近做一个GIS项目在网上爬取了一些数据,无奈只有地址的文字信息没有坐标信息,如何把信息显现在地图上呢?很纠结啊,查看了一下百度地图API惊奇的发现百度提供了地址解析的API,然后查看了他的Demo后豁然开朗,所以动手将自己的文字信息数据进行解析坐标信息.下面开始讲解. 2.方案 (1)自己数据库中的数据 (2)百度地图API Demo <!DOCTYPE html> <html> <head> <meta http-equiv=&qu

【API】高德地图API JS实现获取坐标和回显点标记

1.搜索+选择+获取经纬度和详细地址 2.回显数据并点标记 3.实现 第一步:引入资源文件 <!--引入高德地图JSAPI --><script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script><!--引入UI组件库(1.0版本) --><script src="//webapi.amap.com/ui/1.0/main.js">

【Windows10&nbsp;IoT开发系列】API&nbsp;移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

beego应用做纯API后端如何使用jwt实现无状态权限验证

jwt是什么,可以百度下其它文章,我原来看到一个讲的详细的,现在找不到了.先简单介绍下我个人的理解,就是一个token,只不过通过加密解密的手段,能让这一串字符带有一些简单的信息.这样解密jwt后不用查数据库,最常用的例子,保存用户权限,再多层的权限,其实只用一个数字,转换成二进制,每一位代表一种权限.类似这样的使用,还有保存session的key,通过该值查session就能获取更丰富的资料,用来保存用户状态也是可以的. 下面介绍下我的一个golang项目中使用beego框架做纯API接口使用

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

通过beego快速创建一个Restful风格API项目及API文档自动化(转)

通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界面. 一.创建数据库及数据表(MySQL) #db--jeedev -- ---------------------------- -- Table structure for `app` -- ---------------------------- DROP TABLE IF EXISTS `a