蓝牙开发总结1

参考资料:http://www.cnblogs.com/savagemorgan/p/3722657.html
Android4.3 蓝牙BLE初步

http://www.cnblogs.com/zdz8207/category/434664.html
谈谈几个月以来开发android蓝牙4.0 BLE低功耗应用的感受

http://item.taobao.com/item.htm?spm=a1z09.2.9.13.5EVeNE&id=36373854308&_u=hfm125r918e&qq-pf-to=pcqq.c2c#userconsent# 蓝牙模块

http://blog.csdn.net/jimoduwu/article/details/21604215
Android BLE 蓝牙低功耗教程,中央BluetoothGatt和周边BluetoothGattServer的实现

http://blog.csdn.net/woshasanguo/article/details/41082395
android ble蓝牙开发略解 (写的不错)

?

  1. 首先需要明白一些概念

    蓝牙2.0 vs 蓝牙4.0,主要的区别在于协议变了,4.0主打省电策略,与其他相比,这个更省电。而且,最坑的不是这个,最坑的是蓝牙2.0 只能与蓝牙2.0 通讯,蓝牙4.0与蓝牙4.0通讯。

    协议不一样,无法直接通讯。

在开发手机与单片机通过蓝牙通讯的过程中,我们要知道,其实手机和单片机也是一样,2.0的蓝牙无法同4.0的蓝牙通讯。

还有一点就是,手机间,蓝牙通讯一般用系统自带的app进行开发,而不是用我们自己开发的app,这是因为手机没有root,无法用手机的 app进行相互的通讯。

所以,现在市面上都是,手机蓝牙4.0 与模块蓝牙4.0 之间的通讯。

  1. 蓝牙相关概念:

    GATT、ATT: 这两者都是BLE间小数据传输的协议规范,都是通用的。

    Characteristic: 数据类型,它包括一个value和0至多个value的描述。

    Descriptor: 对上面的描述,例如范围、计量单位等。

    Service:Characteristic的集合,例如一个service可能包含多个ch,一个ch也可能包含多个des.

    ?

?

3、数据的传递问题:

一定要搞清,数据的流向问题:

程序结构:

在DeviceScanActivity当中,数据怎么回传回来?数据在这个里面通过Intent传到这个这里。

在DeviceControlActivity当中,数据是这样的:

各种回调之后,数据在device里面,我们现在的目的是要发送数据,要发送数据就是需要

mNotifyCharacteristic

它怎么得到:

?

?

?

?

?

从上到下,我们可以看到,我们想要得到的其实就是mDeviceAddress,而此已经得到了。只需要从下往上找即可找到。

mBluetoothLeService
				

?

  1. 概念还是概念

    BLE分为三部分Service、Characteristic、Descriptor,这三部分都由UUID作为唯一标示符。一个蓝牙4.0的终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个Value和多个Descriptor,一个Descriptor包含一个Value。

    ?

    ?

    第二大块,分析的有点复杂。

    上面的每一个部分都有唯一的UUID,而且对于某个固定的设备其UUID是固定的,但是设备那么多,我们如何确定是那个设备呢?

    如下面所示:

    上面是对于某个固定的设备是有用的,但是对于不是固定的设备就很难说了。

    ?

也就是说,对于某些相同的设备,gatt都不一样,而gatt下面的?services,character,descriptor都有相同的UUID。

gatt是通过?设备mac获取到的,其函数?connectgatt。

一个设备一个gatt,换设备就要换gatt。

其实我们也可以做成下面这样,一个设备对应多个services,一个service 可能对应着多个characteristic,相同设备的相同服务(service)

和属性(characteristic)的UUID相同。

?

时间: 2024-10-13 02:40:09

蓝牙开发总结1的相关文章

【原创】cocos2d-x3.9蓝牙开发之蓝牙开启

本人第一次搞android开发,很多东西都是只知道一点点,然而都没怎么实践过,所以这次就边学边做自己想要的功能,可能会花较长时间,不过肯定是值得的,有用词或哪里说得不对的请指正. 我自己有android和windows的东西,所以只能暂时只能搞android. 蓝牙开发有几个关键步骤,我一步步来 1,首先开启蓝牙 2,搜索可用设备 3,创建蓝牙socket,获取输入输出流 4,读取和写入数据 5,断开连接关闭蓝牙 我先从第一步开始实现,开启蓝牙,而开启蓝牙是需要一个过程的. 流程是这样的,点击开

如何实现android蓝牙开发 自动配对连接,并不弹出提示框

如何实现android蓝牙开发 自动配对连接,并不弹出提示框 之前做一个android版的蓝牙,遇到最大的难题就是自动配对. 上网查资料说是用反射createBond()和setPin(),但测试时进行配对还是会出现提示,但配对是成功了 我就开始查找怎么关闭这个蓝牙配对提示框,后面还是伟大的android源码帮助了我. 在源码 BluetoothDevice 类中还有两个隐藏方法 cancelBondProcess()和cancelPairingUserInput() 这两个方法一个是取消配对进

Android蓝牙开发的一些经验

转载请注明来自:http://blog.csdn.net/icyfox_bupt/article/details/25487125 最近在实验室做项目,使用了Android的蓝牙开发,这里面有好多坑..所以还是希望能记下来这些东西和大家分享,不要再走我的老路了. 先说一下背景,我是开发手机与带蓝牙的智能设备(蓝牙血压计.血糖仪.手环等)设备对接的APP.也就是说,在设备端没有什么可以操作的,手机负责发起数据传输. 蓝牙连接,不需要配对 由于被曾经使用蓝牙的思路所误导,一直以为使用蓝牙是必须一个配

微信蓝牙开发板体验和开发指引

一.     嵌入式企鹅圈微信蓝牙开发板竞猜活动和开发板资源 1. 之前參与微信公众号(嵌入式企鹅圈)有奖竞猜活动已经结束.嵌入式企鹅圈微信蓝牙开发板已经发出给前15名猜中嵌入式企鹅圈主人的童鞋们. 2.开发板百度资源路径 请增加微信公众号(嵌入式企鹅圈).发送515获取百度网盘资源. 下面指引引用的路径的根文件夹即是网盘资源根文件夹. 嵌入式企鹅圈微信蓝牙开发板基于TI CC2541蓝牙单芯片.没有开发板的伙伴们也能够获取开发资源,源代码project全然适用于以TI CC2541 蓝牙单芯片

Android蓝牙开发

Android蓝牙开发 近期做蓝牙小车,须要Android端来控制小车的运动.以此文记录开发过程. 使用HC-06无线蓝牙串口透传模块.对于其它的蓝牙设备本文相同适用. 蓝牙开发的流程: 获取本地蓝牙适配器    -->     打开蓝牙    -->    搜索设备  -->   连接设备  -->   发送信息 首先为了避免以往我们先写入蓝牙权限: <uses-permission android:name="android.permission.BLUETOO

Android蓝牙开发入门

目录: 1. 蓝牙简史,现状 2. 蓝牙的应用场景 3. 蓝牙相关概念 4. Android蓝牙开发 1. 蓝牙简史: 蓝牙( Bluetooth)是一种无线技术标准,可以实现短距离(通常是几米范围之内)的无线通信.蓝牙技术始于1994年,迄今已经发展了超过20年.本质上它和其它几种射频通信技术类似,比如手机移动通信,近场通信技术(NFC),都是通过电磁波来实现不同设备的信息交换.区别在于无线电波的频率和发射功率不一样,从而传输距离也不一样. 2. 蓝牙的应用场景: l 移动电话和免提设备之间的

iOS开发 -GameKit蓝牙开发

蓝牙4.0 蓝牙4.0是2012年最新蓝牙版本,是3.0的升级版本:较3.0版本更省电.成本低.3毫秒低延迟.超长有效连接距离.AES-128加密等:通常用在蓝牙耳机.蓝牙音箱等设备上. 蓝牙技术联盟(Bluetooth SIG)2010年7月7日宣布,正式采纳蓝牙4.0核心规范(Bluetooth Core Specification Version 4.0 ),并启动对应的认证计划.会员厂商可以提交其产品进行测试,通过后将获得蓝牙4.0标准认证. 该技术拥有极低的运行和待机功耗,使用一粒纽扣

iOS,蓝牙开发!!--By帮雷

iOS的蓝牙开发大致有以下几种方式. 1 GameKit.framework [只能存在于iOS设备之间,多用于游戏 能搜索到的demo比较多,不确切说名字了,code4app里面就有] 2 CoreBlueTooth.framework [必须要支持蓝牙4.0,且iPhone4以上,即至少4s手机.可与第三方设备交互数据, 官方demo是Temperature Sensor ] 3 ExternalAccessory.framework [可于第三方蓝牙设备交互,但是蓝牙设备必须经过MFI认证

Android 蓝牙开发

此例子基于 Android demo 对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Android的蓝牙开发,国内的例子很少     Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发:    鉴于很多开发人员现在也有蓝牙开发的需求,也为了大家少走些弯路,先将我积攒的一点点在Android蓝牙开发经验与大家分享一下! 首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限 <uses-permis