android经典项目,安卓项目开发范例大全
androidkillsamli2_class未找到apk源码
bbsmax
androidkiller未找到对应的apk源码
解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!
查看安卓APK源码破解
如何查看华为EMUI系统APK源码?
Mybatis Mapper接口是如何找到实现类的-源码分析
Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)
android.mk android源码编译
Android事件传递机制详解及最新源码分析——Activity篇
Django-restframework 之认证源码分析
Mybatis 源码学习系列
基于JDK1.8,Java容器源码分析
vue2源码分析:patch函数
Jdk源码-集合类主要原理和解析
Struts2 源码分析——Hello world
【原创】express3.4.8源码解析之中间件
【分享】Maven插件的源码下载(SVN)
10个经典的Android开源项目(附源码包)
json.net 比jsonIgnore 更好的方法 修改源码
编译 wl18xx驱动源码
微信小程序源码推荐
WPF 依赖属性源码 洞察微软如何实现DependencyProperty
Cytoscape源码下载地址和编译办法
热门专题
ABAP的CASE WHENSPRINGBOOT 接收参数实体属性名映射别名REDISTEMPLATE 死循环ROBOTFRAMWORK RIDE开发版本2.0BUNITY 设置LAYERMASKUNIAPP启动获取配置EXCEL表格之间去除关联开源SSL证书生成 WEB工具KICAD隐藏敷铜重新布线TARJAN求强连通分量WORD英文状态下加NON-BREAKING SPACECAP 怎么设置RABBITMQ订阅者名字自行定义泛化名字进行替换原文WAN口之间的底层通信原理AKKA2.1.0官方ISUPEROBJECT转化为字符串C# STRING转DOUBLE保留STRING小数点后的0MAC NTFS 插件BITBUCKET备份恢复MATLABGUI鼠标响应事件
Home
Powered By WordPress
Android蓝牙开发(二)经典蓝牙消息传输实现
上篇文章中,我们主要介绍了蓝牙模块,传统/经典蓝牙模块BT和低功耗蓝牙BLE及其相关的API,不熟悉的可以查看 Android蓝牙开发(一)蓝牙模块及核心API 进行了解。
本篇主要记录用到的经典蓝牙开发流程及连接通讯。
蓝牙连接前,给与相关系统权限:
安卓6.0以上系统要动态请求及获取开启GPS内容:
蓝牙核心对象获取,若获取对象为null则说明设备不支持蓝牙:
判断蓝牙是否开启,没有则开启:
蓝牙扫描:
取消扫描:
蓝牙监听广播,监听蓝牙开关,发现设备,扫描结束等状态,定义状态回调接口,进行对应操作,例如:监听到蓝牙开启后,进行设备扫描;发现设备后进行连接等。
客户端,与服务端建立长连接,进行通讯:
服务端监听客户端发起的连接,进行接收及通讯:
客户端连接及服务端监听基类,用于客户端和服务端之前Socket消息通讯,进行消息或文件的发送、接收,进行通讯关闭操作等:
我这里只是简单记录了项目中用到的蓝牙通讯,两个设备之间不通过配对进行连接、通讯。
相关详细内容及使用请查看Github项目:
蓝牙配对操作及其它内容,可以详细查看我下面的参考资料,写的十分详细,比如设备通过MAC地址,可以通过BluetoothAdapter获取设备,再通过客户端connect方法去进行连接等。
连接中遇到问题:read failed, socket might closed or timeout, read ret: -1。
通过改UUID,反射等方法都还是会出现错误。连接时,要确保服务端及客户端都处于完全断开状态,否则连接就会出现以上问题,但偶尔还是会有问题,期待有什么好的方法可留言告诉我。
参考资料:
Android-经典蓝牙(BT)-建立长连接传输短消息和文件
Android蓝牙开发—经典蓝牙详细开发流程
欢迎点赞/评论,你们的赞同和鼓励是我写作的最大动力!
算法可视化的Android实现
此项目主要是对一些经典的算法在Android上实现可视化的运行过程。项目目的是为了帮助理解算法的运行过程,所以app实现的是对数据类型为整型的数组排序,实际中的算法可以是对任何实现Comparable接口的数据类型进行排序,且app 中也没有各算法间的性能优劣进行体现。目前已完成排序的一些经典算法,项目还在完善中。
主界面:
算法界面:
算法说明:
排序界面:
项目地址: