一种Android输入法应用输入关键字拦截的方法技术

技术编号:20723508 阅读:52 留言:0更新日期:2019-03-30 17:24
本发明专利技术公开了一种Android输入法应用输入关键字拦截的方法,包括以下步骤:步骤1:启动Android输入法应用;步骤2:代理输入法应用的输入通道,并提交到系统输入法管理系统;步骤3:用户在输入法应用端输入内容;步骤4:通过拦截输入通道来获取到用户输入的内容;步骤5:获取输入内容后,对输入的关键字进行处理;步骤6:将关键字处理后的内容提交进系统输入法管理系统,并通过控件进行显示。本发明专利技术采用上述方法,能够很方便地实现输入法中敏感词汇等关键词的拦截,且兼容性高,有利于推广应用。

【技术实现步骤摘要】
一种Android输入法应用输入关键字拦截的方法
本专利技术属于关键字拦截领域,具体涉及一种Android输入法应用输入关键字拦截的方法。
技术介绍
目前,android智能手机已经十分普及了,对于一些行业对关键信息比较看重的领域,或者对用户输入信息进行大数据审计分析的领域,信息的输入显得特别重要。怎样才能在不改变输入法源码的状态下,安全、快速实现关键字拦截,成为了眼下的一个研究课题。目前,现有的一些现成方案或多或少都存在一定的缺陷:1)修改输入法源码,这就需要处理很多与版本、系统相关的处理逻辑,时间成本、研发成本较高。2)自己定制输入法,需要很高的成本,且兼容性不高,不能和市场主流的输入法相抗衡,难以推广。
技术实现思路
为了克服现有技术的不足,本专利技术提出一种Android输入法应用输入关键字拦截的方法,解决现有的拦截方法成本较高,且兼容性不高,难以推广的问题。本专利技术为实现上述目的,采用以下技术方案实现:一种Android输入法应用输入关键字拦截的方法,包括以下步骤:步骤1:启动Android输入法应用;步骤2:代理输入法应用的输入通道,并提交到系统输入法管理系统;步骤3:用户在输入法应用端输入内容;步骤4:通过拦截输入通道来获取到用户输入的内容;步骤5:获取输入内容后,对输入的关键字进行处理;步骤6:将关键字处理后的内容提交进系统输入法管理系统,并通过控件进行显示。进一步地,作为优选技术方案,所述步骤2中,hook机制下,代理InputmethodService.java中的相关变量。进一步地,作为优选技术方案,所述步骤2中,hook机制下,代理InputmethodService.java中的InputConnection来获取输入通道。进一步地,作为优选技术方案,所述InputmethodService.java用于实现输入法的内部逻辑、键盘布局及选词,并最终把选出的字符显示出来。进一步地,作为优选技术方案,所述InputmethodService.java由InputMethodManagerService.java管理,InputMethodManagerService.java还管理WindowManagerService和InputManager,WindowManagerService负责显示输入法和接收用户事件,InputManager由UI控件调用,用来操作输入法。进一步地,作为优选技术方案,所述步骤5中,对关键字的处理包括替换、过滤、记录及上报。本专利技术与现有技术相比,具有以下优点及有益效果:(1)本专利技术通过采用拦截输入法的输入通道,而输入法端最后会通过InputConnection逻辑来传递文本信息给应用端,通用性比较强,能够兼容android4.0到android8.0,andorid系统在更改其api时,本专利技术不需要做改动就能很好地兼容市面上的所有输入法。(2)本专利技术对于企业管理者来说,可以对员工的输入内容进行管控、监控,避免企业机密的泄露,当然,管理者还可以对员工的输入行为、使用词汇及输入习惯进行分析,起到辅助了解员工的目的。(3)本专利技术可以准确记录整个手机或者平板电脑的输入信息,对整个手机用户的输入信息进行拦截上报,对手机使用者的输入信息进行大数据的分析统计,分析用户的心理状态以及性格等,对大数据分析来说有着重要的意义。附图说明图1为本专利技术的方法流程图;图2为本专利技术的拦截过程示意图。具体实施方式下面结合实施例对本专利技术作进一步地详细说明,但本专利技术的实施方式不限于此。实施例:如图1、图2所示,本实施例所述的一种Android输入法应用输入关键字拦截的方法,包括以下步骤:步骤1:启动Android输入法应用;步骤2:代理输入法应用的输入通道,并提交到系统输入法管理系统;步骤3:用户在输入法应用端输入内容;步骤4:通过拦截输入通道来获取到用户输入的内容;步骤5:获取输入内容后,对输入的关键字进行处理,比如替换、过滤、记录及上报等;步骤6:将关键字处理后的内容提交进系统输入法管理系统,并通过控件进行显示。本实施例是基于输入法的动态拦截,故在步骤2中,本实施例可采用java动态代理InputmethodService.java中的相关变量,替换掉系统的运行时对象,在调用过程中,先调用系统的方法,再调用本专利技术基于关键字的处理方法,这样,本专利技术就可以通过这些接口,获取用户的输入,获取输入之后,可以根据原先下发的关键字进行匹配、过滤、替换等操作,之后调用其代理之后的方法,返回到原来的系统中。本实施例中,由于拦截了输入法的输入通道,而输入法端最后会通过InputConnection逻辑来传递文本信息给应用端,因此,采用java动态代理InputmethodService.java中的InputConnection来获取输入通道,通用性比较强,可以兼容android4.0到android8.0,且andorid系统在更改其api时,本专利技术不需要做改动就能很好地兼容市面上的所有输入法,比如搜狗、百度等等。另外,由于提交到显示框的相关文本是通过InputConnection接口的相关方法实现的,对于输入法的拦截,本专利技术在应用启动时,通过代理其相关InputConnection的相关方法获取输入的通道,因此,只需要选择合适的hook点,即可达到拦截的目的。本实施例中,InputMethodManagerService.java是整个系统的总控制中心,它通过管理三个模块来实现系统的输入法框架,分别是WindowManagerService、InputMethodService以及InputManager,WindowManagerService负责显示输入法,接收用户事件;InputMethodService负责输入法内部逻辑,键盘布局,选词等,并最终把选出的字符显示出来,具体地,通过commitText提交出来;InputManager由UI控件(View、TextView、EditText等)调用,用来操作输入法,比如打开、关闭、切换输入法等。本专利技术通过采用上述方法,能够在使用该输入法的人员处于无感知的状态下,正确地记录使用人员的输入内容,且对一些敏感词汇进行替换、记录或者上报等操作。上述方法还能够针对一些特殊情况进行规避,比如军队人员等特殊机构不允许人员向网络发送敏感词汇或者关键信息,运用本专利技术,可很好地解决这一问题。对于企业管理者来说,可以对员工的输入内容进行管控、监控,避免企业机密的泄露,当然,管理者还可以对员工的输入行为、使用词汇及输入习惯进行分析,起到辅助了解员工的目的。更进一步地,上述方法还可以准确记录整个手机或者平板电脑的输入信息,对整个手机用户的输入信息进行拦截上报,对手机使用者的输入信息进行大数据的分析统计,分析用户的心理状态以及性格等,对大数据分析来说有着重要的意义。以上所述,仅是本专利技术的较佳实施例,并非对本专利技术做任何形式上的限制,凡是依据本专利技术的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种Android输入法应用输入关键字拦截的方法,其特征在于,包括以下步骤:步骤1:启动Android输入法应用;步骤2:代理输入法应用的输入通道,并提交到系统输入法管理系统;步骤3:用户在输入法应用端输入内容;步骤4:通过拦截输入通道来获取到用户输入的内容;步骤5:获取输入内容后,对输入的关键字进行处理;步骤6:将关键字处理后的内容提交进系统输入法管理系统,并通过控件进行显示。

【技术特征摘要】
1.一种Android输入法应用输入关键字拦截的方法,其特征在于,包括以下步骤:步骤1:启动Android输入法应用;步骤2:代理输入法应用的输入通道,并提交到系统输入法管理系统;步骤3:用户在输入法应用端输入内容;步骤4:通过拦截输入通道来获取到用户输入的内容;步骤5:获取输入内容后,对输入的关键字进行处理;步骤6:将关键字处理后的内容提交进系统输入法管理系统,并通过控件进行显示。2.根据权利要求1所述的一种Android输入法应用输入关键字拦截的方法,其特征在于,所述步骤2中,hook机制下,代理InputmethodService.java中的相关变量。3.根据权利要求1所述的一种Android输入法应用输入关键字拦截的方法,其特征在于,所述步骤2中,hook机制下,代理InputmethodService.java中的InputConnection来获取输入通道。4.根据权利要...

【专利技术属性】
技术研发人员:王伟桂艳峰丁俊一陈电波田旭宏
申请(专利权)人:北京指掌易科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1