本发明涉及android系统外设设计技术领域,具体涉及一种基于android智能电视兼容多种按键板的方法。
背景技术:
智能电视:基于互联网、搭载了操作系统的电视产品终端。
按键板:电视终端上的搭载的硬件,专业名为本机按键,是一个简易遥控器,可以用来开关机、u盘recovery操作、电视按键操作。
因为电视终端的型号越来越多,不同电视机型号会搭载不同的本机按键板硬件,目前市场上的按键板型号包括一位按键板,五位按键板,以及七位按键板,这就需要软件上对不同的按键板做适配。
技术实现要素:
本发明克服了现有技术的不足,提供一种基于android智能电视兼容多种按键板的方法。以期待解决对于不同型号电视机不同按键板的适配问题。
为解决上述的技术问题,本发明采用以下技术方案:
一种基于android智能电视兼容多种按键板的方法,所述的方法包括以下步骤:
步骤一、把各种按键板的信息写在ini文件里面;
步骤二、通过bootloader分析所述ini文件,解析出电视使用的是哪种按键板,并根据所述ini文件映射电平关系;
步骤三、通过nativeservice服务解析所述ini文件,根据按键板类型设置设备pid,根据设备pid加载相应的kl文件。
更进一步的技术方案是所述的步骤二包括:通过bootloader解析所述ini文件,根据按键板的类型来配置采样电平与键值的关系并将唤醒键值传递到待机mcu中;所述mcu接收到唤醒事件后,所述bootloader解析ini文件,通过该ini文件识别出当前是哪种按键板,根据按键的键值来确认是否需要进入到u盘升级或者recovery模式,并引导进入android系统。
更进一步的技术方案是所述的步骤三包括:通过keypadservice解析ini文件,并且根据按键板类型设定设备pid,设置按键板类型的系统属性。
更进一步的技术方案是所述的步骤三包括:android系统input模块根据vid、pid加载键值映射的kl文件,在phonewindowmanager进行按键派发时,根据按键板类型的系统属性来确定是否需要做按键ui处理。
与现有技术相比,本发明实施例的有益效果之一是:本发明提供了一种解决软件上兼容不同的硬件的方法,通过在上电之初就去解析一个ini按键板配置文件,以及在nativeservice服务里面去配置不同按键板采取的策略,而解决不同型号电视机不同按键板的适配问题。
附图说明
图1为本发明一个实施例的方法流程示意图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
下面结合附图及实施例对本发明的具体实施方式进行详细描述。
在下面的详细描述中,出于解释的目的描述了许多具体描述以便能够彻底理解所公开的实施方案,然而,很明显一个或多个实施方式可以在不使用这些具体描述的情况下实施,在其他实例中,示意性地显示已知结构和装置,以便简化附图。
如图1所示,根据本发明的一个实施例,本实施例公开一种基于android智能电视兼容多种按键板的方法,该方法技术方案中所涉及的专业技术术语解释如下:
ini文件:整机配置文件,其中一个字段配置按键板(1、5、7位按键)类型;
设备pid:该pid供其他应用识别接入的按键板是哪种类型;
kl文件:声明了不同按键板设备识别到的电平所对应的键值;
nativeservice:底层服务;
init进程:android标准启动流程,最初服务;
keypadservice:按键板的底层服务。
具体的,如图1所示,本实施例基于android智能电视兼容多种按键板的方法包括以下步骤:
1)新增一个ini文件,在文件里面配置三种不同按键板(一位按键、五位按键、七位按键)的相关信息;交流上电,进入bootloader。
2)bootloader会去解析一个按键板配置的ini文件,根据按键板的类型来配置采样电平与键值的关系并将唤醒键值传递到待机mcu中;根据该ini文件去配置相应的电平关系,唤醒开机按键。
3)如果没有收到开机按键,那么会继续等待,反之,收到了开机按键,就会进入下一步,开机。
4)再次进入bootloader,重复2)步骤,并且检测按键输入;包括:
mcu接收到唤醒事件后,bootloader去解析一个ini文件,通过该ini文件识别出当前是哪种按键板,根据按键的键值来确认是否需要进入到u盘升级或者recovery模式,如无特殊按键则引导进入android系统;
若没有接收到,就会进入到下一步。
5)如果没有接收到任何本机按键,继续进入kernel、init;
6)init进程会去启动一个keypadservice,该service做如下几步:
解析按键板ini文件,根据按键板类型,设置设备pid;
keypadservice解析ini文件,并且设定设备pid用以表明当前使用的是哪种按键板,设置按键板类型的系统属性;避免系统其他模块在区分按键板类型时重复解析ini文件。
7)android系统input模块根据设备vid、pid选择kl文件进行按键映射,将按键板的键值映射为android系统定义的按键值。具体的,android系统input模块根据vid、pid加载键值映射的kl文件,在phonewindowmanager进行按键派发时,可根据按键板类型的系统属性来确定是否需要做按键ui处理。
8)其他应用接收到键值,并做相应处理。
本实施例通过在上电之初就去解析一个ini按键板配置文件,以及在nativeservice服务里面去配置不同按键板才去的策略,而解决不同型号电视机不同按键板的适配问题。
在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一个实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。
尽管这里参照发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。