为了账号安全,请及时绑定邮箱和手机立即绑定

基于蓝牙的可自学习手机遥控器android应用

标签:
Android

android功能:蓝牙通信、手机遥控器、红外编码、可自学习红外编码

GITHUB项目地址:https://github.com/wjbianjason/IrDA

测试时需要配套一个蓝牙转红外的接口,淘宝上卖。

大家可以看下图片是否是您的需要

该软件含有一个程序包com.ds.IrDA。该程序包含有6个Java文件,其中主要的有5个java文件,下面会依次介绍。另外还有3个xml显

示文件,主要的有client.xml实现操作界面,device.xml显示搜索到的蓝牙列表。主要就是蓝牙通信,并且利用Android里里面最简单

的存储方式SharedPreferences来存取自学习到的红外编码。点击学习按钮后,按一下你想学习的那个按键然后将该按键的编码传过

来,学习完了,它会自动提示学习完毕的,你可以自己点学习完毕提前结束学习,当然编码肯定不是你手动输入的,而是你通过红

外接收器量化电平后输出的编码。

(1)ClientAvtivity.java是客户端界面的activity,主要功能是实现搜索、画图、命令发送的和数据接收的显示。

1、点击“开始搜索”键执行以下代码。

转到DeviceListActivity.java进行蓝牙设备的搜索和显示。

2、协议列表的建立和选择

3、打开客户端界面时的存储数据读取操作,存储方式为SharedPreferences。

4、各类按键的操作设定

5、学习键的设定

6、编码名添加键的设定

7、学习完毕键的设定

8、广播接收的各类响应代码如下,实现对其他java文件广播事件的处理,其中包括对自学习红外编码数据的接收。

9、红外编码数据的发送,通过进行发送隐式intent让相应广播器接收处理

10、对选择设备的响应接收,创建蓝牙设备列表的activity时是用startActivityForResult()方法,所以可通过onAcitvityResult方法来接收返回的数据,即选择的蓝牙设备名和地址。

(2)DeviceListActivity.java,实现的功能是显示搜索到的蓝牙设备。

1、注册广播接收,并建立ListView来显示蓝牙设备

2、 广播接收处理,处理找到设备和蓝牙搜索结束的广播

3、处理蓝牙设备选择的触屏选择

(3)BluetoothClientService.java主要实现客户端界面后台的各项功能,包括数据发送和接收,蓝牙设备的查找,并注册相应的广播接收来响应相应的信息,又通过发送广播将信息传输出去。

1、打开蓝牙适配器,开始搜索

2、发现蓝牙设备后,发送广播告知DeviceListActivity.java。

3、广播接收器的注册,从中可以看到这个service具体处理的广播信号

4、 接收数据的处理,根据接收字节流的前两个字节判定接收的数据是属于哪一类型,例如发送的反馈,自学习的命令。其中包括新建txt 文件存储自学习的红外编码字节流,通过study_order确定每个按键编码在txt文件里的起始位置,通过study_num存储每个按键编码在txt文件里的字节长度

5、调用通信进程发送数据,如果选择的是自学习红外协议,通过打开存储文件根据study_order和study_num找到相应的按键编码,再进行发送。

(4)BluetoothClientConnThread.java建立一个蓝牙设备连接进程,主要实现蓝牙设备的连接,建立通信信道。

(5)BluetoothCommunThread.java是通信进程,用于具体数据的接收和发送

在这个文件中存储了NEC协议的编码,当选择的是NEC编码时,会直接从该文件中读取编码命令。

1、NEC协议编码的设定

2、Converse函数,将0、1二进制数转化为本次项目需要的显示电平时长的编码。

3、实现数据的接收

4、实现红外编码的发送

好了,基本就这些了,这些都是之前写的工程了,图片也是之前写傻瓜书时截的,若有什么不明白的可以把工程下下来看



作者:可怜的橡皮擦
链接:https://www.jianshu.com/p/d6493cb555f4

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消