一种车载娱乐系统中支持双输入法的方法
文献发布时间:2023-06-19 12:18:04
技术领域
本发明涉及终端应用技术领域,特别是涉及一种车载娱乐系统中支持双输入法的方法。
背景技术
在车载座舱系统中,存在一种情况,在一个操作系统,支持两个屏幕双用户操作,都需要用到输入法,但默认系统只支持一个输入法显示输入,当前一般方案为一个输入法进行动态左右屏幕的跳转,很显然不能满足两个用户同时使用输入法的情况。
发明内容
本发明为克服上述现有技术中,一操作系统只支持一个输入法显示输入,不能满足两个用户同时使用输入法的问题,提供一种车载娱乐系统中支持双输入法的方法。
为解决上述技术问题,本发明的技术方案如下:
一种车载娱乐系统中支持双输入法的方法,车载娱乐系统基于Android系统,所述车载娱乐系统包括车载主机硬件以及与所述车载主机硬件连接的主屏幕和副屏幕,所述方法包括:
在启动主用户的同时,创建Profile用户并启动,实现主用户输入法应用和Profile用户输入法应用的双开启动;
根据主屏幕输入法服务扩展副屏幕输入法服务;
在输入法管理器服务中扩展出副屏幕输入法服务的管理服务;
扩展窗口管理服务,使其支持主屏幕输入法和副屏幕输入法的管理。
进一步的,作为优选技术方案,创建Profile用户具体包括:
在启动Profile用户的过程中,Android系统的软件包管理服务准备用户数据,并将主用户的用户数据重新安装为Profile用户的用户数据,以使Profile 用户具备Profile用户输入法应用。
进一步的,作为优选技术方案,Profile用户重新安装的应用数据仅包括运行在双用户的应用数据。
进一步的,作为优选技术方案,扩展副屏幕输入法服务具体包括:
在输入法Create阶段,在新的软输入法窗口传入当前Display的上下文,保证副屏幕应用在调用输入法对话框时,绑定副屏幕输入法应用。
进一步的,作为优选技术方案,副屏幕输入法服务的管理服务的扩展具体包括:
用户在通过输入法管理器调用时,定制输入法管理器SDK,根据应用的uid 来识别绑定输入法管理器服务中哪个输入法服务,进而完成输入法的加载、切换。
进一步的,作为优选技术方案,扩展窗口管理服务,具体包括:
将单输入法Client管理扩展为双Client、副屏幕输入法窗口状态、副屏幕输入法动画管理、副屏幕输入法窗口,同时增加副屏幕输入法窗口显示方法。
进一步的,作为优选技术方案,还包括增加副屏幕输入法在失去焦点时的相关update处理逻辑。
进一步的,作为优选技术方案,所述Android版本大于等于5.0。
与现有技术相比,本发明技术方案的有益效果是:
本发明通过扩展车载娱乐系统输入法管理框架,增设副屏幕输入法的管理,实现一个车载娱乐系统,在支持双屏应用异步显示的前提下,能够支持左右屏幕用户同时操作输入法的需求。
附图说明
图1为本发明应用双开框架图。
图2为本发明双输入法框架图。
附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的;相同或相似的标号对应相同或相似的部件;附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征更易被本领域技术人员理解,从而对本发明的保护范围作出更为清楚的界定。。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制。
此外,若有“第一”、“第二”等术语仅用于描述目的,主要是用于区分不同的装置、元件或组成部分(具体的种类和构造可能相同也可能不同),并非用于表明或暗示所指示装置、元件或组成部分的相对重要性和数量,而不能理解为指示或者暗示相对重要性。
实施例1
本实施例公开一种车载娱乐系统中支持双输入法的方法,车载娱乐系统基于Android系统,车载娱乐系统包括车载主机硬件以及与所述车载主机硬件连接的主屏幕和副屏幕,该Android版本大于等于5.0,且小于等于9.0。
在本实施例中,Android系统从5.0版本开始支持多用户,系统对于多用户,定义了两种用户类型:User types、Profile types,这里User types是在后台启动的,这种形式只能保证存在一个用户在前台,而Profile types是已存在用户的子集,依赖父用户共同存在,应用数据独立存储。这里Profile types类型的用户正好满足我们当前输入法应用双开的需求,故此,同时创建Profile用户。
同时,Android系统输入法有自己的一套框架,输入法管理器服务
(InputMethodManagerService),负责管理系统的所有输入法,包括输入法服务(InputMethodService)的加载及切换。程序获得焦点时,就会通过输入法管理器(InputMethodManager)向输入法管理器服务(InputMethodManagerService) 通知自己获得焦点并请求绑定自己到当前用户输入法应用上。同时,当程序的某个需要输入法的view,比如EditorView获得焦点时,也会通过输入法管理器 (InputMethodManager)向输入法管理器服务(InputMethodManagerService) 请求显示输入法,而这时输入法管理器服务(InputMethodManagerService)收到请求后,会将请求的EditText的数据通信接口发送给当前输入法,并请求显示自己的UI dialog,同时保存目标view的数据结构,当用户实现输入后,直接通过view的数据通信接口将字符传递到对应的View,以上是输入法启动流程,而本发明支持双输入法主要是将扩展此单输入法框架为双输入法支持。
本发明的方法包括:
S10.在启动主用户的同时,创建Profile用户并启动,实现主用户输入法应用和Profile用户输入法应用的双开启动。
本步骤如图1所示具体包括:在Android系统启动阶段,创建Profile用户,这样系统会将一个应用默认安装为两个用户,不同用户应用uid不同,所以启动时,同一应用,不同用户启动会启动为两个不同进程,实现了应用的双开。
而创建Profile用户具体包括:在启动Profile用户的过程中,Android系统的软件包管理服务准备用户数据,并将主用户的应用数据重新安装为Profile 用户的应用数据,以使Profile用户具备Profile用户输入法应用。
在本步骤中,Profile用户重新安装的应用数据仅包括运行在双用户的应用数据,即输入法应用数据,将不需要运行在双用户的应用数据过滤掉,其主要通过PMS-Settings-createNewUserLI方法中黑名单配置不做双开的应用集实现过滤。
同时,在本步骤中,用于不同用户输入法服务将绑定对应用户应用输入法应用,故此实现双用户输入法应用双开启动的调用。
S20.根据主屏幕输入法服务扩展副屏幕输入法服务。
在本步骤中,由于输入法服务(InputMethodService)提供了对输入法的标准实现,具体输入法都派生这个接口,而该系统默认只支持主屏幕输入法,故此需要扩展对副屏幕输入法的支持,而副屏幕输入法服务的扩展,如图2所示,具体包括:
在输入法Create阶段,在新的软输入法窗口(new SoftInputWindow),传入当前Display的上下文,保证对应屏幕,即副屏幕应用在调用输入法对话框时,绑定对应屏幕,即副屏幕输入法应用。
S30.在输入法管理器服务中扩展出副屏幕输入法服务的管理服务。
在本步骤中,因为当前有两个输入法服务,即主屏幕输入法服务和副屏幕输入法服务,输入法管理器服务(InputMethodManagerService)中需要扩展副屏幕输入法服务的管理服务(LocalServiceImplSecond),用户在通过输入法管理器(InputMethodManager)调用时,定制输入法管理器(InputMethodManager) SDK,应用无需关心调用哪个输入法服务,根据应用的uid来识别绑定输入法管理器服务(InputMethodManagerService)中哪个输入法服务,进而完成输入法的加载、切换。
S40.扩展窗口管理服务,使其支持主屏幕输入法和副屏幕输入法的管理。
在本步骤中,
由于输入法是以窗口的形式进行添加显示的,如果想要双屏独立的使用输入法,那么就需要扩展窗口管理服务(WindowManagerService),以保证支持双屏幕输入法的管理,窗口管理服务(WindowManagerService)的扩展具体包括:将单输入法Client管理扩展为双Client(mInputMethodClientDisplayMap)、副屏幕输入法WindowState(mInputMethodTargetExternal)、副屏幕输入法动画管理(mInputMethodTargetWaitingAnimExternal)、副屏幕输入法窗口 (mInputMethodWindowExternal),增加副屏幕输入法窗口显示方法 (setInputMethodWindowLockedExteral),以及增加副屏幕输入法在失去焦点时的相关update处理逻辑(inputMethodClientHasFocus),从而保证了系统双屏输入法应用显示时,对应窗口系统能够给予对应支持、管理。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
- 一种车载娱乐系统中支持双输入法的方法
- 一种车载娱乐系统的灯光控制方法、装置及车载娱乐系统