基于蓝牙的智能手机遥控系统设计和实现
2016-11-02肖佳旭张歆奕
肖佳旭,张歆奕,何 兴
(1五邑大学信息工程学院,广东江门529020;2朝野科技有限公司,广东佛山528234)
基于蓝牙的智能手机遥控系统设计和实现
肖佳旭1,张歆奕1,何 兴2
(1五邑大学信息工程学院,广东江门529020;2朝野科技有限公司,广东佛山528234)
往日的电视和手机在生活中所充当的角色单一,而如今智能电视和智能手机的出现则大大改变了人们现有的生活方式。手机作为手持设备也逐渐成为控制家电的新手段。以前的手机仅仅是作为通讯设备,而电视也只是一个显示视频的终端;而现在随着Android的面世,两者之间存在很多相同点,同时也具有各自的优势。本项目在手机端通过实现客户端程序,将日常生活中的红外遥控移植到手机端,并且通过蓝牙与电视进行交互,为用户提供了一种新的便捷操控方式。
Android;蓝牙;智能手机;智能电视
0 引 言
随着物联网技术的迅速发展和人民生活水平的不断提高,人们不断地追求更为舒适便利和新潮的生活方式,对娱乐性产品的功能需求随着技术的发展也日趋丰富与突出。时下,电视已然成为每个现代家庭都将购置配备的娱乐性家用电器,现在的电视机也正逐步地将高新技术引进融入其中,使得其控制方式与交互体验形式均已发生了重大的变化。传统的电视机体积较大、重量不可小视、且画面也不够清晰,而现今的电视已经平板化,不仅重量上变得轻便,同时画面质量也已发生了质的提升。
目前安卓系统在智能电视市场中的占有率颇高,普及率也日居主流,如此即使得智能电视既拥有传统电视的优势,同时更可开发有与智能手机相同的功能。对于智能电视用户来说,智能电视类似于一块超大屏幕的非触屏手机,用户则可以通过触摸完成所有的控制操作。基于此,为了获得简单便捷的与电视机交互效果以及能够为用户创造更佳的体验方式,本次研究项目选择设计开发了一款手机与智能电视配合使用的遥控解决方案。其中,手机将提供显示界面给用户查看并发送指令,指令的响应和功能的实现则均由智能电视端来进行整合规划并最终完成[1-2]。
1 总体设计方案
系统总体分为2部分:一个部分为智能手机端,另一个部分为智能电视端。两者采用蓝牙的方式实施连接,智能手机端负责探测用户的动作和发出遥控指令;智能电视端则负责对接收的遥控指令做出功能效果响应。在此,针对这2个部分的设计方案,可给出如下概述。
1.1智能手机端
这部分应用的界面设计包含欢迎界面,遥控界面以及菜单界面3个专区。其中,欢迎界面只包含一个窗口,主要用于显示软件的欢迎界面;遥控界面也同样包含一个窗口,对应功能是负责向用户呈现可触摸的遥控按钮界面,并且监听用户的点击事件做出实时反馈与处理。
手机端应用重点包含如下3个功能:蓝牙设置、更换背景、震动开关。具体地,蓝牙设置主要对其可见性、连接状态等进行基本定义;更换背景主要是对遥控界面进行个性化设置,而震动开关则是为了迎合不同用户的习惯,对于点击屏幕产生的震动反馈,用户可以选择性地打开或者关闭。
1.2智能电视端
智能电视端的开发将是基于现有的平台上来发生和实现,因此智能电视端的界面部分无需重新设计样式,只需要根据已有界面的风格进行主题拓展即可。整体风格的展示如图1所示。
图1 智能电视界面风格Fig.1 The style of the smart TV
智能电视端的功能开发部分则是在网络设置中添加蓝牙设置功能,其中包含蓝牙可见性、蓝牙遥控开关、搜索蓝牙设备、连接蓝牙设备、更改与设备的连接状态。功能设置的整体效果如图2所示。
图2 智能电视蓝牙设置Fig.2 The Bluetooth setting of the smart TV
2 系统实现
2.1智能电视端的实现
因篇幅所限,智能电视端的开发工作,本文只介绍蓝牙遥控功能的实现。基于电视端在系统中所处服务端的地位,因此需要先行开启Server Socket,目的就是针对来自于其他设备的连接请求执行监听,手机端则通过服务端的MAC地址去发起连接请求,进而初始化连接[3]。对于连接请求的监听,本节方法采用非绑定的Service进行处理,并在该Service中定义了一个用于持续监听连接请求的线程;而当成功处理一个连接请求以后,将返回一个已连接的BluetoothSocket对象到该Service中,此时再需定义一个线程,对应在该线程中获取已连接的BluetoothSocket的输入流,而且将进一步重写该线程中的run方法,同时又在run方法中不断地从输入流中获取来自客户端的遥控数据,由此则将接到的数据转换成Android对应的按键码值,最终发送按键事件产生动作响应。持续监听请求的代码片段如图3所示。
2.2智能手机端的实现
手机端的界面设计是采用LinearLayout、RelativiLayout和FrameLayout混合布局的方式进行开放式构建:整体而言,即为从上至下的线性布局,而对于遥控界面各个区域的不同,随即选择了利用水平线性布局和帧布局来完成对各个区域形状的绘制。绘制完成后,主界面的实现效果如图4所示。
图3 代码片段1Fig.3 Source code segment 1
图4 主窗口效果图Fig.4 Impression drawing of main activity
特别地,由图4可见,图中菜单滑动效果的实现方法,本次研发中采用的是重写菜单所在Activity中的dispatchTpuchEvent()方法去拦截用户的触摸事件,一次完整的滑动事件可以分解为3个组成部分:ACTION_DOWN、ACTION_MOVE、ACTION_UP。各部分的含义可分别表述为:按下、移动、抬起。具体地,在按下时获取事件产生的坐标,在移动过程中将连续的动作分解为各自成段的直线,并分别对每一段直线路径实现定制处理[4-5],计算每一段的路程位移,而后再重绘界面产生移动的效果。核心代码如图5所示。
基于智能电视端的内容可知,智能手机端在连接上处于客户端的地位。要初始化到服务端的连接,首先即需保证服务端已经开启一个Server Socket,然后通过远程服务端设备的设备地址获取到该远程设备的代表对象,其后利用该对象发起连接请求,其基本流程如下:
通过用户点击,获取选中设备的MAC地址,再利用BluetoothAdaptercong从本地获取代表该远程设备的BluetoothDevice对象。
图5 代码片段2Fig.5 Source code segment 2
利用BluetoothDevice获取一个BluetoothSocket。该BluetoothSocket对象将在后续操作中连接到用户所点击的远程设备上,而调用方法时所传入的UUID(Universally Unique Identifier)则必须和服务端开启BluetoothServerSocket时所使用的UUID保持一致。在本项目中通过硬编码的方式将UUID写在智能电视端和智能手机端的应用中,而且两者所使用的UUID也彼此相同。
调用connect()方法初始化连接。通过调用此方法,系统将会进行UUID匹配扫描,如果UUID相同,并且远程设备接受连接请求,那么双方设备可以共享RFCOMM通道进行传递数据。值得注意的是,connect()方法会阻塞线程直到方法成功返回或抛出异常,因此需将其放在单独的线程进行操作。
当2台设备成功建立通信以后,每台设备都会得到一个BluetoothSocket对象,该对象已经连接到目标设备,此时可以获取连接所对应的输出流,利用该输出流将用户的操作指令发送到目标设备实行接收处理。
2.3手机端与电视端的连接
当智能电视端和智能手机端的服务均创建成功以后,便可以通过手机和电视之间的配合操作对电视端进行控制。首先必须在智能电视端打开蓝牙开启服务进行有关连接请求的监听,其次便可使用手机端的蓝牙对电视设备发起搜索,点击设备进入配对,成功匹配后再根据界面提示进行连接,完成连接后,此时手机端就可以取代电视所配备的物理遥控器。
3 结束语
智能电视在生活中已然形成普及流行态势,同时手机也已经成为当代人不可或缺的伴随式物品。基于蓝牙的智能手机遥控系统,不仅涉及到手机,还将电视终端融入设计内容,因而可以同时获取2个平台的用户。在时下的互联网时代,能获取用户的眼球就会赢得更大的商机,因此无论是电视端还是手机端,都为日后的应用拓展奠定了前瞻性远景预期的良好基础。
[1]黄巍.智能电视、云电视是产业未来增长点[J].家用电器,2012(2):44-45.
[2]乔维,薛楠.智能电视产业发展现状及趋势研究[J].电视技术,2012,36(S1):30-33,47.
[3]沈晓峰.基于2.4G无线传输的人机交互智能遥控器设计[D].杭州:杭州电子科技大学,2014.
[4]张楠.基于Android平台的手机小助手的设计与实现[D].大连:大连理工大学,2013.
[5]邵艳洁.Android操作系统移植及应用研究[D].长沙:湖南大学,2011.
The design and implementation of a remote control system based on smart phone and Bluetooth
XIAO Jiaxu1,ZHANG Xinyi1,HE Xing2
(1 School of Information Engineering,Wuyi University,Jiangmen Guangdong 529020,China;2 Asano Technology Co.,LTD,Foshan Guangdong 528234,China)
TV and phone had played single role in the past life.Currently,the emergence of smart TV and phones has greatly changed the ways of the human’s life.As a handheld device,cell phone has gradually become a new mean to control home appliances.Previous cell phone merely acts as a communication equipment,and television was just a display terminal.But with the launch of the Android system,apart from the corresponding different advantages,they have more and more similarities.In this paper,APPs are designed for both phone terminal and TV terminal,which transplant the task usually performed by infrared remote controller to cell phone,and interacts with TV via Bluetooth.So the research provides a new way to control TVs for users.
Android;Bluetooth;smart phone;smart TV
TP391
A
2095-2163(2016)03-0071-03
2016-04-29
肖佳旭(1990-),男,硕士,主要研究方向:Android/WEB应用研发。