目录
本blog未涉及页面布局UI设计的知识,阅读之前至少具备基础的页面Activity设计能力。
一、蓝牙Bluetooth简介。
蓝牙分为经典蓝牙BT和低功耗蓝牙BLE。我们代码所使用的为低功耗蓝牙BLE。区别可以参考:低功耗蓝牙和经典蓝牙概述 - iini - 博客园 (cnblogs.com)
在开发安卓程序的时候,这两种是不一样的,开发流程截然不同。所以在搜集蓝牙开发教程的时候不要搜集错教程了。
二、 此实验APP的预期效果描述
(建议实际拿实验箱调试一下,效果更加直观)。
APP包含两个页面,记为A和B:
①页面A:安装好APP后首先进入页面A,在这个页面点击开始扫描Button,会显示搜到的蓝牙节点名称。点击目标蓝牙。
②页面B:点击蓝牙后会跳转到第二个页面,在这个页面点击连接后就可显示实时的温湿度情况。
EXPT1:温湿度蓝牙
老版本的实验指导书里面的程序流程图和新版代码是对不上的,还是建议实际拿实验箱跑一下。 (如果遇到程序搜不到蓝牙的问题,可以参考下面我的这篇blog:(46条消息) Quest:程序无法搜索到蓝牙设备(但是设置里面可以搜索到蓝牙)的解决办法_why you learn hard?的博客-CSDN博客
三、 工程结构介绍。
如上图所示:
-java
-com.fo
-ds(两个Activity页面的代码文件)
-BleDeviceListActivity (构建页面A)
-E1BleTemperatureNodeActivity (构建页面B)
-FroBleAdapter (自定义的Adapter,辅助页面A的功能实现)
-util(学过java的都知道java自带的工具包就叫util,这里命名为util也是同样的意思) -ByteUtil (类型转换工具类)
-Global (全局常量Constant类)
四、代码文件分析
下面对这五个代码文件逐一介绍。由于篇幅过长,并且有些文件是通用的,故分为了四篇blog。
BleDeviceListActivity和FroBleAdapter:
(23条消息) EXPT_1:BleDeviceListActivity与FroBLeAdapter_why you learn hard?的博客-CSDN博客
E1BleTemperatureNodeActivity:(46条消息) EXPT_1:E1BleTemperatureNodeActivity_why you learn hard?的博客-CSDN博客
ByteUtil:(46条消息) EXPT1:ByteUtil_why you learn hard?的博客-CSDN博客
Global:(46条消息) EXPT1:Global_why you learn hard?的博客-CSDN博客
写在最后:
其实蓝牙实验基本都是这样的套路。至少解析节点返回的数据的时候有所不同。
其他的几乎一样。