本发明涉及一种实现使用者自行定义遥控器快捷功能的方法。
背景技术:
现今tv(regulartv/iptv/androidsmarttv…)系统中在快速键的功能选定上,只能客制化,经由软件设计端来指定开启固定功能画面。即系统要开启任何功能画面只能从现有的摇控器上,找寻是否存在,不然只可以从选单画面或应用程序中手动开启,而不能实现:使用者开启现有的功能画面,设定至摇控器指定按键上,做为后续快键使用,自行设定专属所需的快键。
为此本申请提供了一种应用在tv(regulartv/iptv/androidsmarttv…)系统上的方法,以实现:
1、使用者自行设定专属快键,节省不必要的时间去找寻对应开启的位置,加快使用上的速度;
2、使用者自行设定专属快键,节省摇控器上客制化的按键数量,降低硬件开发成本。
技术实现要素:
本发明的目的在于提供一种实现使用者自行定义遥控器快捷功能的方法,该方法透过解析指定需被设定的功能画面的细部信息,把所需的开启方式储存起来;并可以指定给之前所设定的摇控器按键上,借此来达到使用者自定快键的效果。
为实现上述目的,本发明的技术方案是:一种实现使用者自行定义遥控器快捷功能的方法,使用者开启电视/显示器任一功能画面,通过按遥控器相应按键进行快捷按键设置,触发按键事件,此时,自行定义遥控器快捷功能程序拦截按键事件,而后,解析功能画面的开启方式,最后,将功能画面的开启方式与该按键对应存储下来,完成快捷按键设置。
本发明一具体实施例的方法具体实现如下,
s1、使用者在tv系统中开启任一功能画面,并通过长按遥控器需设置的快捷按键,触发系统服务程序,再由服务程序传导至framework层中进行按键事件处理时,进行按键事件的拦截,若按键事件拦截成功,则进入按键事件拦截处理程序,并执行下一步骤;否则,结束程序;
s2、进行按键repeat计算,当repeat累积到预设的repeatrate,再判断该按键是否为按下状态及判断该按键是否为有效的快捷按键,并标记按键,若都成立则执行下一步骤;否则,结束程序;
s3、解析目前在上层功能画面的细部信息,抓取所需的启动元素,并储存到tv系统不会被刷新/可记录的空间中,在储存之前会进入启动元素的filter,判断过滤是否为不可设置的功能画面及是否为已重复设置过的功能画面,若是,则结束程序,并立即显示对应错误讯息;否则,将该按键对应的启动元素储存下来,显示设定成功,结束程序。
在本发明一实施例中,在步骤s3后还包括一步骤,快捷按键设置成功后,当使用者短按已设置过后的快捷按键,tv系统会再次进入相同的按键事件拦截的处理程序,进行按键repeat的计算,当repeat为零,再判断该按键是否为第一次按下、是否为放开状态及判断该按键是否为有效的快捷按键,再抓取该按键的启动元素,并进行功能画面的启动。
在本发明一实施例中,步骤s2中,repeat累积到预设的repeatrate,即满足下式:
在本发明一实施例中,步骤s2中,所述repeat,即长按同一个按键时,连续发出该按键键码的holdevent次数。
在本发明一实施例中,步骤s2中,所述repeatrate即预设的重复率,决定按键的长按时间。
在本发明一实施例中,所述tv系统为androidsmarttv系统。
相较于现有技术,本发明具有以下有益效果:本发明方法透过解析指定需被设定的功能画面的细部信息,把所需的开启方式储存起来;并可以指定给之前所设定的摇控器按键上,借此来达到使用者自定快键的效果。
附图说明
图1为本发明遥控器按键事件程序流程图。
图2为长按按键处理程序流程图。
图3为短按按键处理程序流程图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
如图1所示,本发明的一种实现使用者自行定义遥控器快捷功能的方法,使用者开启电视/显示器任一功能画面,通过按遥控器相应按键进行快捷按键设置,触发按键事件,此时,自行定义遥控器快捷功能程序拦截按键事件,而后,解析功能画面的开启方式,最后,将功能画面的开启方式与该按键对应存储下来,完成快捷按键设置。
本发明一种实现使用者自行定义遥控器快捷功能的方法的一具体实施例的方法具体实现如下,
s1、使用者在tv系统(androidsmarttv系统)中开启任一功能画面,并通过长按遥控器需设置的快捷按键,触发系统服务程序,再由服务程序传导至framework层中进行按键事件处理时,进行按键事件的拦截,若按键事件拦截成功,则进入按键事件拦截处理程序,并执行下一步骤;否则,结束程序;
s2、进行按键repeat(长按同一个按键时,会连续发出该按键键码的holdevent次数,表示按键还保持长按的状态)的计算,当repeat累积到预设的repeatrate,也就是到达软件设计者自行设定长按时间。因为基本一个按键会有三种状态:down按下、hold保持、up放开,故我们会再进行判断该按键是否为按下状态及判断该按键是否为有效的快捷按键,并标记按键,若都成立则执行下一步骤;否则,结束程序;
s3、解析目前在上层功能画面的细部信息,抓取所需的启动元素,并储存到tv系统不会被刷新/可记录的空间中,在储存之前会进入启动元素的filter,判断过滤是否为不可设置的功能画面及是否为已重复设置过的功能画面,若是,则结束程序,并立即显示对应错误讯息;否则,将该按键对应的启动元素储存下来,显示设定成功,结束程序。
在步骤s3后还包括一步骤,快捷按键设置成功后,当使用者短按已设置过后的快捷按键,tv系统会再次进入相同的按键事件拦截的处理程序,进行按键repeat的计算,当repeat为零(短按的情况,不会有repeat的数量),再判断该按键是否为第一次按下、是否为放开状态及判断该按键是否为有效的快捷按键,再抓取该按键的启动元素,并进行功能画面的启动。
所述步骤s2中,repeat累积到预设的repeatrate,即repeat/repeatrate取余数等于零,公式如下:
以下为本发明的具体实现过程。
如图1、2所示,本发明的一种实现使用者自行定义遥控器快捷功能的方法:当使用者在电视里开启任一个功能画面(非原有摇控器上快键及主要画面除外)时,长按欲设定之按键(例如:四色键-红、绿、黄、蓝其中一键),此时系统会通知长驻的服务程序(activitymanagerservice、windowmanagerservice),再由服务程序传导至framework层中处理按键事件(keyevent)的地方(phonewindowmanager)进行解析,而我们就在此进行按键事件(keyevent)的拦截,拦截下来后,会进行repeat的计算,当repeat累积到设定好的repeatrate后,再判断是否为down型态及是否为指定欲设定之按键的其中一员,并标记按键,如果都成立就进入下一层判断,反之跳离不处理。
上述条件成立后,处理程序会开始解析目前在上层功能画面的细部信息,抓取所需的启动元素(activitypackagename/classname),并储存到系统不会被刷新/可记录覆写的空间中(systempersistproperties),在储存之前会进入启动元素的filter,判断过滤是否为不可设定的功能画面及是否为已重复设定过的功能画面,如果被过滤掉即会跳离结束程序,并立即显示对应错误讯息,反之就会把该欲设定之按键对应的启动元素储存下来,显示设定成功,结束程序。
如图3所示,设定成功后,当使用者短按已设定过后的按键,系统会再次进入相同的按键事件(keyevent)拦截的处理程序里,判断按键事件状态为up、repeat为零、是否为第一次按下以及是否为指定欲设定之按键的其中一员,再进入抓取对应按键的启动元素,并进行功能画面的启动事宜。
最终此功能可以让使用者达到长按可重复设定所需的功能画面,短按可启动该功能画面的效果。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。