杨立扬,成国强
(江苏省公用信息有限公司,江苏 南京 210000)
基于个推消息推送系统的手机遥控器技术研究
杨立扬,成国强
(江苏省公用信息有限公司,江苏 南京 210000)
随着互联网电视和移动互联网的飞速发展,我们正身处一个多屏的时代,多屏之间的互动因其可以为用户提供更好的体验,而日益成为互联网领域的研究热点。多屏互动的一项关键技术就是手机遥控器。文章首先介绍了手机遥控器的基本原理,然后介绍了目前多屏设备之间互联的主流方式及其局限性,最后提出了一种新的基于个推消息推送系统的手机遥控器技术方案。
遥控器;多屏互动;互联网电视
随着互联网电视与移动互联网的飞速发展,我们正身处一个多屏的时代,由原来简单的电视、电脑双屏,发展到电视、电脑、智能手机、平板Pad、智能手表、Google眼镜、车载屏幕等多个屏幕构成的生态系统,这一生态系统正日益深刻地影响着人们的日常生活。如何在多个屏幕之间互动,形成最佳的用户体验,成为互联网领域的热门研究议题。
目前电视、电脑和智能手机是人们日常生活中接触最多的三大屏幕,它们各有特点:电视屏幕大,视频观看体验好;电脑功能全,储存空间大;手机携带方便,更便捷;用户使用电视观看视频虽然观看体验好,但是在操作便捷和内容资源上远不及手机和电脑。多屏互动技术就是旨在将多个屏幕的优势进行融合,实现最佳的用户体验。
多屏互动的一项关键技术是手机遥控器功能,即通过在手机上安装遥控器客户端,并将手机与电视机顶盒等设备进行互联,就能够取代常规的电视物理遥控器,直接在手机上方便快捷地完成电视遥控器的各项操作,这样再也不用担心遥控器找不到的情况,此外,多屏互动手机遥控器还能够充当游戏手柄和语音话筒,功能相当丰富。本文中的手机遥控器主要指的是智能手机遥控电视机顶盒,事实上,通过手机遥控其他设备原理和实现方案是类似的。
手机遥控器的基本原理是:通过无线连接协议或消息系统建立智能手机与电视机顶盒的设备连接通道,当用户在手机遥控器客户端上点击按键指令(KeyCode)时,客户端通过手机与电视机机顶盒之间的连接通道将该KeyCode发给机顶盒中的驻留进程,机顶盒中的驻留进程收到指令后,解析出KeyCode,然后向机顶盒操作系统模拟发送KeyCode对应的遥控器按键事件(KeyEvent),操作系统接受并处理此KeyEvent,从而实现了手机遥控电视机顶盒的目的。
从手机遥控器的基本原理可知,其实现基础是首先需要实现智能手机与电视机顶盒的互联,在两者之间建立连接通道用于发送按键指令。实现手机与电视机顶盒互联的方式有很多,但大体可以分为两类:(1)通过标准的设备连接协议;(2)通过消息系统[1]。
目前主流的多屏互动设备连接协议有DLNA(Digital Living Network Alliance),AirPlay,Miracast等[2]。
DLNA是索尼、英特尔、微软等发起的一套 PC、移动设备、消费电器之间互联互通的协议,其宗旨是“随时随地享受音乐、照片和视频”,通过DLNA互联的前提是设备要支持DLNA协议。
AirPlay是苹果公司开发的一套设备互联协议,通过WiFi,可以将iOS设备上的图片、音频、视频以无线的方式传输到支持AirPlay的设备上。AirPlay具备DLNA所没有的镜像功能,可将iPhone等设备的画面无线传输到电视上进行同屏展示,即iPhone显示什么,电视屏幕就显示什么。
Miracast是WiFi联盟针对WiFi Display技术实现产品认证的项目,该技术基于MAC 层点对点(WiFi Direct)传输,实现音视频数据无线传输和播放。支持此标准的设备可通过无线方式分享图片或视频画面,Miracast也支持镜像功能。
上述3种协议都是通过无线将手机与机顶盒设备进行互联,使用上具备一定的局限性。
(1)Airplay主要用于苹果设备,DLNA和MiraCast也只能用于已内嵌支持DLNA和MiraCast协议的设备上,设备使用范围上有一定的局限性。
(2)DLNA,AirPlay,MiraCast都是通过无线连接智能手机和机顶盒,要求智能手机和机顶盒必须处于同一个无线局域网内,但目前电信运营商的IPTV电视很多都是在私网建设的,而手机通过4G连接的是公网,公私网不通,所以两者无法处在同一无线局域网内,这就大大限制了智能手机与电视机顶盒互联的范围。
与之相比,基于消息系统的手机与机顶盒的互联方式则没有上述限制,本文提出一种基于个推消息推送系统的手机遥控器方案,该方案突破了现有多屏互动主流协议DLNA,AirPlay,MiraCast的局限性,智能手机和机顶盒无需内嵌任何协议,也无需在同一局域网内,基于个推的消息推送系统,横跨公私网也可实现设备之间的互联,具有广泛的适用性。
为实现智能手机向机顶盒推送遥控器按键指令,需要机顶盒端有一个常驻进程,该常驻进程首先与云端的消息系统建立TCP长连接,这里的长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接。通过与云端消息系统的长连接,机顶盒就保持了一条消息通道,智能手机可以通过向云端消息系统发送指令,并经过这条长连接消息通道,实现向机顶盒发送消息指令的目的。
本文的方案中,我们借助个推来实现消息系统的能力。个推作为国内专业的推送技术服务商,提供的消息推送解决方案,可以帮助开发者快捷建立消息推送系统。为使用个推的消息推送系统,开发者需要在客户端(包括Android设备和iOS设备)集成个推的客户端SDK,建立与个推云端系统的长连接消息通道。
客户端应用集成个推的客户端SDK后,个推SDK会给客户单分配一个唯一的ClientID,客户端启动后,个推会启动驻留Service,该Service和个推服务器建立一个长连接,通过这个长连接,个推服务器就可以随时以ClientID为标识向客户端应用推送消息,个推的SDK service在收到云端服务器推送的消息后,会发出广播透传消息,要接收的应用通过注册BroadcastReceive来接收透传的消息。为了支持开发者通过自有Web服务调用个推服务器推送消息,个推还提供了服务器端API,开发者集成了服务端API后,即可从自有Web服务中向客户端发送消息。
通过个推消息系统,手机中的遥控器客户端就可以把按键指令发送给机顶盒端的驻留程序,接下来驻留程序要做的就是从消息中解析出按键指令,然后向系统模拟发送相应的按键指令。模拟发送按键指令在不同的操作系统上方式不同,本文以目前使用最广泛的Android机顶盒为例,通过Android Instrumentation框架向Android系统发送模拟按键。
Instrumentation是Android测试的核心框架,可使用它进行Android应用的单元测试和自动化测试,为了对应用程序进行精确控制,Instrumentation提供了专门的向系统或应用程序发送按键的系列功能API,如sendKeyDownUpSync等,因此我们的驻留程序可以使用Android Instrumentation框架向Android系统发送模拟按键。
通过智能手机向机顶盒(以Android机顶系统盒为例)推送遥控器指令的完整流程如图1所示。
图1 遥控器指令推送流程
步骤1:智能手机中的遥控器客户端(集成了个推客户端SDK)上,用户点击了手机遥控器界面上的某个按键,按键被转换成Android机顶盒认可的KeyCode。手机遥控器客户端调用自有Web服务器的指令推动接口,请求把KeyCode推送到指定ClientID的Android机顶盒上。
步骤2:自有Web服务器接口收到请求后,调用个推消息推送系统API,把KeyCode和ClientID透传给个推消息推送系统。
步骤3:个推消息推送系统根据ClientID找到对应的机顶盒,然后通过与该机顶盒对应的TCP长连接将消息推送给该机顶盒的个推Service,个推Service收到消息后会把KeyCode解析出来,针对解析出来的KeyCode,机顶盒中的驻留进程调用Android Instrumentation框架中的sendKeyDownUpSync方法向Android系统发送模拟按键指令,Android收到后就会执行KeyCode指令,完成KeyCode按键操作,从而实现了手机对Android机顶盒的遥控功能。
步骤4:驻留程序成功将KeyCode转发给Android系统后,需要将指令处理结果反馈给智能手机的遥控器客户端,此时驻留程序会调用自有Web服务器的指令推送接口,要求把处理结果推送到指定ClientID的智能手机上。
步骤5:自有Web服务器接口收到请求后,调用个推消息推送系统API,把处理结果和智能手机的ClientID透传给个推消息推送系统。
步骤6:个推消息推送系统根据ClientID找到对应的智能手机,然后通过与该手机对应的TCP长连接将消息推送给该手机的个推Service,个推Service会把消息广播给手机上的遥控器客户端,遥控器客户端解析出指令执行结果,从而实现一个完整的闭环遥控指令。
多屏时代的来临,催生了多屏互动技术的研究,作为多屏互动一项关键技术,手机遥控器打通了操作指令在不同屏幕之间的流转通道,为用户省去了物理遥控器设备,有效提升了用户体验。现有主流的设备互联协议DLNA,AirPlay,MiraCast虽然能够有效实现多屏互联并共享图片、视频,但它们只能在已内嵌支持上述协议的设备上使用,且不同设备必须要处于相同局域网内,而目前我们国内的现状是,终端设备厂家众多,大量的互联网电视是以私网IPTV形态承载的,所以基于DLNA,AirPlay,MiraCast的多屏方案使用上具有较大的局限性。因此,本文提出了一种不限设备,不限网络的多屏手机遥控器方案,基于个推提供的消息推送能力,实现智能手机向电视机顶盒推送遥控器指令,机顶盒中的驻留程序接收指令后,通过Android Instrumentation框架向Android系统发送模拟按键事件,从而实现了智能手机对机顶盒的遥控操作。
[1] 余泽喜,王香婷,马婷婷.多屏互动系统的研究与实现[J].智能计算机与应用,2012(1):69-70.
[2] 魏峥,施唯佳,祝谷乔.互联网视频中多屏互动技术的应用[J].电信科学,2014(5):27-32.
Study on mobile phone remote control technology based on getui message push system
Yang Liyang, Cheng Guoqiang
(Jiangsu Public Information Company Limited, Nanjing 210000, China)
With the rapid development of IPTV and mobile Internet, now we are in a multi screen era. The multi screen interaction become a research hot spot in the fi eld of Internet because it can provide a better experience for users. One of the key technologies of multi screen interaction is mobile phone remote control. This paper introduces the basic principle of mobile phone remote control, and then introduces the current mainstream mode of interconnection between multi screen devices and their limitations, and fi nally puts forward a new mobile phone remote control solution which is based on getui message push system.
remote control; multi screen interaction; IPTV
杨立扬(1979— ),男,江苏南京人,高级工程师,硕士;研究方向:IPTV与互联网电视。