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)
BluetoothGatt API的更多相关文章
- Android BLE 蓝牙低功耗教程,中央BluetoothGatt和周边BluetoothGattServer的实现
http://blog.csdn.net/wave_1102/article/details/39271693 分类: Android(105) 作者同类文章X Android4.3 规范了BLE的A ...
- Android BLE与终端通信(五)——Google API BLE4.0低功耗蓝牙文档解读之案例初探
Android BLE与终端通信(五)--Google API BLE4.0低功耗蓝牙文档解读之案例初探 算下来很久没有写BLE的博文了,上家的技术都快忘记了,所以赶紧读了一遍Google的API顺便 ...
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- 几个有趣的WEB设备API(二)
浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- JavaScript 对数据处理的5个API
JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- javascript的api设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
随机推荐
- hdu4992 Primitive Roots(所有原根)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4992 题意:给出n,输出n的所有原根. 思路:求出n的一个原根x,那么对于所以的i,i<phi( ...
- FreeSWITCH第三方库(视频)的简单介绍(二)
FreeSWITCH使用了大量的第三方库,本文档主要介绍视频相关库的信息: 音频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5486753.html 其他相关 ...
- Django——model字段类型 2
Django 通过models实现数据库的创建.修改.删除等操作,Django中model作为数据资源指定了字段以及一些相应的功能,通常每个model对应数据库中的一张表,(每个model都是从dja ...
- 业务对象(BO)设计
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [Java解惑]异常
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- MySQL修改约束
添加主键约束: ALTER TABLE tbl_name ADD [CONSTRAINT [symbol索引名]] PRIMARY KEY [index_type] (index_col ...
- DOM综合案例、SAX解析、StAX解析、DOM4J解析
今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...
- chubu
python解释型语言,不需要编译成机器认可的二进制码,而是直接从源代码运行程序. python是基于c语言开发的. python很容易嵌入到其他语言. 中文注释,必须在前边加上注释说明 : #_*_ ...
- iOS - Swift NSRect 位置和尺寸
前言 结构体,这个结构体用来表示事物的坐标点和宽高度. public typealias NSRect = CGRect public struct CGRect { public var origi ...
- 百度之星Astar2016 Round2A
All X 等比数列求和一下 A/B MOD C = A MOD (B*C) / B 或者分治一下 Sitting in Line 状压+拓扑dp dp(i, j)表示当前二进制状态为j,当前状态的 ...