博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[安卓] 13、安卓蓝牙定位(一)——如何周期性获得蓝牙节点信号强度?
阅读量:6614 次
发布时间:2019-06-24

本文共 963 字,大约阅读时间需要 3 分钟。

 

 

前言

本文将用一个简单的例子介绍如何用安卓手机的蓝牙功能来周期性搜索周边蓝牙节点的信号强度,为有意玩一下蓝牙室内定位的爱好者提供一点小的思路。(如果是想用安卓手机和蓝牙模块通信来实现遥控功能的话,可以参考:;想用笔记本和蓝牙模块通信来实现遥控功能的话可以参考:;如果是想使用笔记本的蓝牙来做蓝牙定位的话,哈哈,建议放弃...

效果

定期扫描周边蓝牙设备-->根据信号强度绘制大小不同的圆圈(对于开发人员来说,引入如何搜索到BT信号强度LZ觉得应该很足够啦,然后就可以自由发挥啦)

简介

代码参考:

成员变量】SurfaceView空间用来绘制动画效果,BluetoothAdapter用来获取蓝牙设备,接下来依次是蓝牙设备信息向量、蓝牙设备信号强弱向量、画笔向量~

初始化】在onCreate函数中执行初始化相关操作主要有:①画笔初始化;②surfaceview初始化并设置回调函数(因为线程里无法进行界面更新,所以要把消息从线程里发送出来在消息句柄里进行处理,所以我们在37~65行会看到一个消息句柄,用来接收消息并根据消息内容重绘surfaceview)

启动搜索】该函数供每次触发搜索使用,其中第一次触发位于182行的menuOptions按钮事件中,然后每次在绘制结束后再次调用doDiscovery进行周期性搜索。

搜索信息并存储】当启动搜索之后,如果一旦搜索到设备就会触发BleetoothDevice.ACTION_FOUND消息,然后将蓝牙设备的名字和MAC地址放进向量保存,信号强度rssi放进RSSI向量保存;当搜索结束后会触发BluetoothAdapter.ACTION_DISCOVERY_FINISHED,在这里表明一个搜索周期结束,通过Bundle发送msg,通知绘图消息句柄,进行绘图。

绘图消息句柄处理bundle消息并刷新】当上面完成一个搜索周期后会发送bundle消息来触发绘图(如下45~48行),绘图完毕调用doDiscovery再次搜索,如此循环往复。

后记

当大家知道了如何周期性获得周围蓝牙信号强度后,再结合市场上销售的蓝牙节点根据定位技术就能设计出特定应用场景的室内定位了~希望该文对大家有帮助!!!☆⌒(*^-゜)v

 

 

相关链接

本文链接:

更多精彩:

工程代码:

 

转载地址:http://eqhso.baihongyu.com/

你可能感兴趣的文章
给vs2012换肤
查看>>
java接口中多继承的问题
查看>>
索引笔记《二》确定需要建立索引的列
查看>>
libjpeg的问题
查看>>
Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
查看>>
深度学习笔记之CNN(卷积神经网络)基础
查看>>
嵌入式 详解udev
查看>>
云安全:这也是需要花大钱去建设的部分
查看>>
5G网络不止能1秒下一部电影,它还能够…
查看>>
中国电信集采终端6700万部 金额达1070亿元
查看>>
2016年的十个数据中心故事
查看>>
《Java并发编程的艺术》一一3.3 顺序一致性
查看>>
《设计之外——比修图更重要的111件事》—第1部分3 虚心学习
查看>>
EVCache —— Netflix 的分布式内存数据存储
查看>>
《用友ERP-U8(8.72版)标准财务模拟实训》——1.4 系统管理注册和导入演示账套...
查看>>
springboot docker笔记
查看>>
Modbus RTU 通信工具设计
查看>>
服务化改造实践 | 如何在 Dubbo 中支持 REST
查看>>
【第8章】JVM内存管理
查看>>
ovirt官方安装文档 附录G
查看>>