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设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
随机推荐
- 【leetcode❤python】171. Excel Sheet Column Number
#-*- coding: UTF-8 -*- # ord(c) -> integer##Return the integer ordinal of a one-character string. ...
- 拖拽碰撞效果,高级浏览器下全部搞定(ie6-8还没有搞定)
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- MySql性能优化相关
原来使用MySql处理的数据量比较少,小打小闹的,没有关注过性能的问题.最近要处理的数据量飙升,每天至少20W行的新增数据,导致MySql在性能方面已经是差到不可用的地步了,必须要重视MySql的优化 ...
- [SAP ABAP开发技术总结]Form(subroutine)、Function参数传值传址
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- HDU 1247 Hat's Words (map+string)
Hat’s Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- FLASH CC 2015 CANVAS (七)总结
FLASH CC 2015 CANVAS (一至七)确切来说是自己在摸索学习过程中而写.所以定为“开荒教程”. 去年年底转战H5,半年中一直非常忙也不敢用CC来做项目,担心有BUG或者无法实现需求,所 ...
- Java、fileless恶意软件威胁桌面安全
工作原理:用户访问一个受侵的网站,不小心下载了最新类型的恶意软件.如果你的杀毒软件运行良好的话,就会阻止下载,至少能够检测到并隔离硬盘上的入侵文件.但是如果硬盘上没有文件监测呢?如果恶意软件只入侵内存 ...
- iOS - UITextField
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextField : UIControl <UITextInput, NSCoding> @ava ...
- Android_相关路径
1. Android应用安装涉及到如下几个目录:system/app 系统自带的应用程序,无法删除.data/app 用户程序安装的目录,有删除权限.安装时把apk文件复制到此目录.da ...
- C10K及C100K问题探讨 & 怎么应对大流量大并发
首先开宗明义,离开业务单独讨论并发,都是扯淡. 就像 https://www.zhihu.com/question/20493166/answer/15998053 这里面说的 谈并发必然要谈业务,空 ...