一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于安卓平台的自定义按键的处理方法及其处理装置与流程

2022-02-21 03:46:14 来源:中国专利 TAG:
1.本发明是关于自定义按键的处理技术,特别是关于一种基于安卓平台的自定义按键的处理方法及其处理装置。
背景技术
::2.借助安卓(android)平台,智能电视发展越来越快。随着技术的进步,智能电视或者网络机顶盒等产品的硬件和软件不断地在更新,因此遥控器需要能提供越来越多功能的控制项目。然而,安卓输入系统无法处理安卓预定义按键值之外的使用者自定义按键。3.为了使安卓输入系统能处理使用者自定义按键,目前的方法是修改安卓发布的代码框架(简称安卓框架(androidframework))以添加自定义按键为安卓预定义按键值。技术实现要素:4.然而,发明人发现当有多个使用者有不同自定义按键处理的需求时,此方法会导致各个用户修改后的安卓框架无法整合,也导致安卓主干系统分裂。并且,修改后的安卓框架无法同步及合并安卓系统相关修补程序(patch)。5.在一实施例中,一种基于安卓平台的自定义按键的处理方法,其包括:接收输入按键的按键值、映射按键值为按键扫描码、根据按键扫描码识别需拦截按键、于输入按键为需拦截按键时,由按键拦截模块转换按键扫描码为特定按键码、以及从按键拦截模块绕过安卓框架层发送特定按键码给应用程序进行处理。6.在一实施例中,一种基于安卓平台的自定义按键的处理装置,其包括:按键驱动模块、拦截中间模块、以及拦截服务模块。按键驱动模块侦测需拦截按键,并且于侦测到需拦截按键时,上行通知需拦截按键的按键扫描码。拦截中间模块接收按键驱动模块上行通知的需拦截按键的按键扫描码、转换需拦截按键的按键扫描码为特定按键码,并上报特定按键码。拦截服务模块接收拦截中间模块上报的特定按键码,并绕过安卓框架层发送特定按键码给应用程序进行处理。7.综上所述,任一实施例的基于安卓平台的自定义按键的处理方法及其处理装置,其扩展了linux输入驱动程序,以于不影响安卓系统本身的按键处理的情况下拦截并优先处理自定义功能的输入按键(即设定有特定按键码的需拦截按键),藉以免除修改安卓发布的代码框架的需求,进而突破安卓输入系统的技术局限性并提供用户更好的自我修改和维护功能。附图说明8.图1为一实施例的基于安卓平台的自定义按键的处理装置的概要架构图。9.图2为图1中的处理装置的系统架构示意图。10.图3为一实施例的基于安卓平台的自定义按键的处理方法的流程图。具体实施方式11.于此,根据本发明之基于安卓平台的自定义按键的处理方法可藉由一处理单元执行韧体或软件算法而实施在电子装置上。换言之,根据本发明之基于安卓平台的自定义按键的处理方法可由一电脑程序产品实现,以致于当电子装置(即,具有处理单元与储存单元之任意电子装置)载入程序并执行后可完成根据本发明任一实施例之基于安卓平台的自定义按键的处理方法。在一些实施例中,电脑程序产品可为一可读取记录媒体,而上述程序则储存在可读取记录媒体中供一电脑载入。在一些实施例中,上述程序本身即可为电脑程序产品,并且经由有线或无线的方式传输至电子装置中。其中,电子装置可支持安卓(andriod)平台。在一些实施例中,电子装置可例如为智能型家电或可携式电子装置等。其中,智能型家电可例如为智能电视、或智能冰箱等。可携式电子装置可例如为智能型手机(smartphone)、导航机(pnd)、数字相框(pdf)、电子书(e-book)、或平版电脑(tabletorpad)等。12.参照图1至图2,基于安卓平台的自定义按键的处理装置包括按键驱动模块21与按键拦截模块23。13.按键驱动模块21配置在安卓系统的linux内核层(linuxkernel)。按键驱动模块21为输入装置的驱动介面并用以控制。其中,此输入装置具有一个或多个输入按键10。在一些实施例中,各输入按键10可为实体按键或虚拟按键。14.按键拦截模块23可包括拦截中间模块231与拦截服务模块233。拦截中间模块231配置在安卓系统的系统运行库层。拦截服务模块233配置在安卓系统的框架层。举例来说,以google提供的安卓系统架构来说,拦截中间模块231是配置在系统运行库层中c/c 程序库(nativec/c libraries)的部分中,而拦截服务模块233则不属于安卓发布的代码框架但为与安卓发布的代码框架同在框架层之基于安卓基本服务自行编译开发的自创框架。以安卓系统启动架构来说,拦截中间模块231是配置在native层之基于安卓基本服务自行创建的模块,而拦截服务模块233则配置在java框架层之基于安卓基本服务自行创建的模块。15.参照图1至图3,拦截服务模块233可连结一设定介面以接收用户输入的特定输入按键10的自定义的按键功能并据以经由拦截中间模块231向按键驱动模块21注册此特定输入按键10为需拦截按键(步骤s11)。换言之,此设定介面提供用户对特定输入按键10自定义其按键功能,即设定需拦截按键。在步骤s11的一实施例中,按键拦截模块23向拦截中间模块231注册特定输入按键10为需拦截按键(步骤s11a),然后拦截中间模块231再据以向按键驱动模块21注册此特定输入按键10为需拦截按键(步骤s11b)。在一些实施例中,拦截中间模块231将需拦截按键写入按键驱动模块21的拦截按键表中。换言之,拦截按键表记录有需拦截按键的按键扫描码。16.于输入按键10被触发(如实体按键被按压或虚拟按键被点选)时,输入按键10输出此输入按键10的按键值,并且按键驱动模块21会接收此输入按键10的按键值(步骤s12)。在步骤s12的一示范例中,当输入按键10为虚拟按键时,提供(或实现)此虚拟按键的应用程序会响应虚拟按键被点选而产生对应的按键值给按键驱动模块21。换言之,按键驱动模块21接收到来自应用程序的虚拟按键的按键值后也会将其视为一实体按键来进行后续处理。17.接着,按键驱动模块21映射接收到的按键值为一按键扫描码(scancode)(步骤s13)。在步骤s13的一实施例中,输入装置的所有输入按键10的按键扫描码可定义在一标准按键定义表(例如:input.h文件)中,即标准按键定义表中记录所有输入按键10的按键值与其对应的按键扫描码。于接收到输入的按键值时,按键驱动模块21根据此标准按键定义表得到按键值所对应的按键扫描码。其中,按键扫描码可属于linux标准按键定义。换言之,标准按键定义表可为linux标准按键定义表。举例来说,按键驱动模块21接收到二进制的按键值-「0x355」后会根据linux标准按键表映射为按键扫描码-「key1」。18.并且,按键驱动模块21会侦测一需拦截按键。换言之,按键驱动模块21根据映射后的按键扫描码识别一需拦截按键(步骤s14)。在步骤s14的一实施例中,按键驱动模块21以映射后的按键扫描码检查拦截按键表,以确认被触发输入按键10是否为需拦截按键。19.于按键驱动模块21识别到需拦截按键(即被触发的输入按键10为需拦截按键)时,按键驱动模块21上行通知(notify)映射后的按键扫描码给拦截中间模块231(步骤s15)。拦截中间模块231接收按键驱动模块21上行通知的需拦截按键的按键扫描码,并将接收到的按键扫描码转换为一特定按键码(步骤s16)。然后,拦截中间模块231再将转换得的特定按键码上报(即通知)给拦截服务模块233(步骤s17)。拦截服务模块233接收拦截中间模块231上报的特定按键码,并绕过安卓系统的安卓框架层发送特定按键码给配置在安卓系统的应用程序层中的应用程序40进行处理(步骤s18)。20.在步骤s15的一实施例中,按键驱动模块21可以按键事件通知按键信息给拦截中间模块231。举例来说,按键驱动模块21识别到需拦截按键时,按键驱动模块21会调出并变动事件文档,并将变动后的事件文档通知给拦截中间模块231。拦截中间模块231透过确认变动后的事件文档的内容来得知被触发的输入按键10的按键扫描码。21.在一些实施例中,需拦截按键的按键功能可定义在一自定义按键定义表中,即第二对照文件中记录所有需拦截按键的按键扫描码与其对应的特定按键码。其中,特定按键码可为非输入按键10的原生安卓按键码的其他安卓按键码或非属于安卓原生按键定义的用户按键码。在步骤s16的一实施例中,拦截中间模块231可根据此自定义按键定义表得到接收到的需拦截按键的按键扫描码所对应的特定按键码。22.在步骤s18的一实施例中,在不发送给安卓框架层的情况下,由拦截服务模块233会根据转换得的特定按键码主动调用应用程序40以执行对应动作。在步骤s18的另一实施例中,在不发送给安卓框架层的情况下,拦截服务模块233会利用讯息机制分发转换后的特定按键码给应用程序40以执行对应动作。23.此外,拦截服务模块233还会将处理结果(如,调用结果获分发结果)经由拦截中间模块231返回通知按键驱动模块21(步骤s19a~19b)。而按键驱动模块21再根据接收到的处理结果进一步决定是否需要将映射后的按键扫描码分发给或不分发给配置在安卓框架层(即安卓发布的代码框架)中的系统服务模块30进行处理。24.再者,于按键驱动模块21未识别到需拦截按键(即被触发输入按键10非需拦截按键)时,按键驱动模块21上行通知输入按键的按键扫描码至安卓框架层中的系统服务模块30(步骤s20)。系统服务模块30将接收到的按键扫描码转换为对应的安卓按键码(步骤s21),然后发送给应用程序40进行处理(步骤s22)。在步骤s21的一些实施例中,系统服务模块30根据安卓原生按键定义表得到输入按键10所对应的安卓按键码。换言之,安卓原生按键定义表中记录有所有输入按键10的按键扫描码及其对应的原生安卓按键码。25.在一些实施例中,处理装置可针对指定输入按键10进行拦截。于此,拦截按键表仅记录需进行拦截的指定输入按键10。此时,按键驱动模块21会根据拦截按键表拦截需拦截按键(即需拦截的输入按键10)并将需拦截按键的按键扫描码会上报给按键拦截模块23进行处理。而非需拦截按键的按键扫描码则上报给安卓框架层中的系统服务模块30进行处理。26.在另一些实施例中,处理装置亦可针对全部按键进行拦截。于此,拦截按键表记录全部输入按键10的按键值。而自定义按键定义表中则记录全部输入按键10的按键扫描码与其对应的特定按键码。此时,特定按键码则除了可为非输入按键10的原生安卓按键码的其他安卓按键码或非属于安卓原生按键定义的用户按键码外,还可为输入按键10的原生安卓按键码。并且,按键驱动模块21会根据拦截按键表拦截所有输入按键10并将其对应的按键扫描码上报给按键拦截模块23进行处理。27.在一些实施例中,输入装置可为遥控器、智能型家电的使用者介面、或可携式电子装置的使用者介面等。其中,使用者介面可为触控屏幕、键盘、或按键组等。28.在一些实施例中,前述之按键驱动模块21、按键拦截模块23、系统服务模块30与应用程序40可由一处理单元执行对应的韧体或软件算法而实现。在一些实施例中,处理装置可藉由储存单元来储存相关之软件/韧体程序、数据、及文档(如前述之拦截按键表、标准按键定义表、自定义按键定义表及安卓原生按键定义表等)等。其中,处理单元可以是微处理器、微控制器、数字信号处理器、中央处理器、或任何基于操作指令操作信号的模拟和/或数字装置。储存单元可由一个或多个记忆体实现。29.综上所述,任一实施例的基于安卓平台的自定义按键的处理方法及其处理装置,其扩展了linux输入驱动程序,以于不影响安卓系统本身的按键处理的情况下拦截并优先处理自定义功能的输入按键(即设定有特定按键码的需拦截按键),藉以免除修改安卓发布的代码框架的需求,进而突破安卓输入系统的技术局限性并提供用户更好的自我修改和维护功能。在一些实施例中,更提供用户可不受安卓原生按键定义的限制自定义各种输入按键的功能;特别是自定义的输入按键的功能可包含和不包含安卓默认的输入按键的功能(即输入按键可对应于用户按键码或对应于安卓按键码)。此外,在一实施例的基于安卓平台的自定义按键的处理方法或一实施例的基于安卓平台的自定义按键的处理装置的应用中,按键驱动模块的标准按键定义表与按键拦截模块的自定义按键定义表皆可由用户自定义。30.【符号说明】31.10:输入按键32.21:按键驱动模块33.23:按键拦截模块34.231:拦截中间模块35.233:拦截服务模块36.30:系统服务模块37.40:应用程序38.s11,s11a,s11b,s12,s13,s14,s15,s16,s17,s18,s19a,s19b,s20,s21,s22:步骤当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献