美文网首页
android 传统蓝牙封装

android 传统蓝牙封装

作者: 阿星_ | 来源:发表于2018-05-15 15:18 被阅读0次

    前言: 由于最近的项目里有对接蓝牙硬件设备的需求。

    大体分为传统蓝牙和BLE蓝牙两种。

    我和同事各负责一种蓝牙封装。

    由于会连接多种硬件设备,所以我的做法是把传统蓝牙的封装代码和硬件设备的一些解析jar包和so包统一打一个model包方便管理。

    以后加新的设备也统一加再model包里。

    定义的方法不多。

    之所以回调在方法里传,是考虑到一个页面会连接多个设备,传不同的callback,耦合性会更好。

    另外,具体的btmanager在连接和搜索的时候要根据状态做好多次点击连接的判断。

    但是提示可以放到页面里去处理,这样模块的功能性更单一,耦合性更好。

    还有就是连接上设备之后,读取socket,不要把蓝牙连接状态在读取数据的地方赋值,连接状态只负责蓝牙连接那一块的赋值。

    难点就是自动配对在不同设备上的设配问题。

    自动配对,就是在页面开一个服务,然后destory的时候销毁。

    像网上说的通过反射调用配对方法或者直接调用配对方法,经我测试在不同的设备上的反应都不同,应该是不同厂商的系统被改写。

    简单来说就是不能用。

    但是如果页面有多个设备要连接。并且ping码不同的话。

    自动配对代码就不要使用了,会出现自动配对但是ping码不对导致不能配对并且不能连接设备的情况。

    如果只有单一设备要连接。 自动配对代码加入项目之前,需要多个手机进行测试。

    暂时就没有加入这一功能了。

    不加配对代码的话。

    小米手机上是会弹出提示窗,点确认配对。就会自动配对成功。

    配对成功后以后连接会更快。1秒左右。

    有的手机,不会弹窗提示,就始终以未配对情况进行连接,连接速度在5秒左右。

    相关文章

      网友评论

          本文标题:android 传统蓝牙封装

          本文链接:https://www.haomeiwen.com/subject/btzedftx.html