关于Android蓝牙4.0Ble设备开发技术点

来源:互联网 发布:淘宝默认发票抬头 编辑:程序博客网 时间:2024/05/18 01:33
重点内容最近做的都是与蓝牙相关的项目,也对蓝牙4.0有了一些个人的理解。如果有哪些写的不对,欢迎大家指出。在最近的项目开发中,先做了一个智慧园区的项目,然后指导了一个蓝牙打卡项目,最近又在忙一个与郑州某大学可见光通讯有关的蓝牙项目。所以最近对蓝牙的接触有点多,也学会了慢慢的去扒一些低层的东西。现在可以找到很多关于蓝牙4.0的开发,但是没有我特别想要的一些功能,在可见光项目中主要用到蓝牙的地方是,控制命令的传输,即需要手机端与设备通信就可以实现功能了。先介绍一下硬件吧,我们这边采购的是蓝嵌科技的cc2540电路板与蓝牙设备(绝对没有打广告的意思),支持蓝牙4.0的开发,Android系统大家都知道了,需要4.3以上,并且手机的硬件支持。我们这边一个经理,拿了一款手机,Android版本支持,但是硬件不支持所以也会出问题。下面是一些代码类的介绍,我这边就不写很多网上可以搜到的代码了,那是浪费时间,没必要介绍。我在这里主要写一下我做的通讯代码。在通讯时要明确几个步骤:1、你需要搜索到你要用到的蓝牙设备。2、你需要得到该设备的一个特征值,UUID或者Address,看个人意愿,拿到特征值之后,进行连接。3、接收数据,或者发送数据。蓝牙开发要用到的一些重要的知识有Service,和BroadcastReceiver,Service这边就不讲了,因为在收发数据的过程中主要用到的是BroadcastReceiver的知识。在注册广播的时候会有一个过滤器去选择性的接受一些数据,这些过滤器主要有

intentFilter.addAction(FasongBluetoothLeService.ACTION_GATT_CONNECTED); intentFilter.addAction(FasongBluetoothLeService.ACTION_GATT_DISCONNECTED);
intentFilter.addAction(FasongBluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED);
intentFilter.addAction(FasongBluetoothLeService.ACTION_DATA_AVAILABLE);
相对应的4个特征值的定义是
action_gatt_connected:连接到GATT服务器。
action_gatt_disconnected:从GATT服务器断开。
action_gatt_services_discovered:关贸总协定的服务发现。
action_data_available:从设备接收数据。这可能是一个结果的读取或通知操作。
所以想要对数据进行操作,就要在第四个过滤器那边去处理数据的收发操作了。
而想要从设备获得数据,首先要有从蓝牙的协议中得到这些服务,所以逆推到第三个过滤器,在第三个里边去处理一些协议与gatt的事务处理。
在这边主要涉及到的类有BluetoothGattCharacteristic,BluetoothGattService这2个。BluetoothGattCharacteristic就是一个协议数据载体,会把数据传递过来。
在读取蓝牙设备带过来的数据时,最重要的一个方法是:readCharacteristic(characteristic);
而和其相对应的写数据的操作的方法是:
wirteCharacteristic(characteristic);
下面是我写的2个类,对于读取数据与写数据的操作,时间紧迫,没有好好整理代码,写的很乱,大家有哪些不理解的方法可以问我,源码只能给这么多了。

0 0
原创粉丝点击