android输入法,Android输入法AOSP

安卓平板上好用的输入法有哪些?

1、百度输入法:百度输入法是百度公司免费提供的输入软件。2010年10月推出,拥有百度搜索和云端技术的支持,百度输入法很快成为了新一代的输入产品。“世界很复杂,百度更懂你”,其输入法词库多元、输入精准,输入方式多样而著称。

创新互联建站主要从事成都网站制作、成都做网站、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务怀柔,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

2、百度袋鼠输入:袋鼠输入是一款可使手机遥控电脑的泛输入类创新应用。它可以通过手机在电脑端实现语音、手写输入,同时可让手机变为免费无线鼠标、电脑视频遥控器、PPT遥控器、游戏手柄,未来还有更多可能。

3、必应输入法:必应输入法是微软公司首款整合搜索体验的云输入法产品,保留了此前由微软亚洲研究院推出的“英库拼音输入法”的自然语言处理、中文计算、搜索引擎、机器翻译、网络数据挖掘、机器学习等方面的技术优势,同时整合了必应的搜索体验。

4、手心输入法:是一款智能、高效,无广告骚扰,只专注于输入本质的纯粹输入法。手心输入法拥有强大的智能输入引擎、丰富的本地词库、在线词库及精美皮肤在线下载,能够在Windows、Android、IOS与Mac系统上使用。

5、微软拼音输入法:微软拼音输入法是一种基于语句的智能型的拼音输入法,采用拼音作为汉字的录入方式,用户不需要经过专门的学习和培训,就可以方便使用并熟练掌握这种汉字输入技术。

购买安卓平板注意事项

目前安卓平板电脑的尺寸还是比较混乱的,从5寸到10寸都有很多的产品,选择屏幕大小还是根据自己的需求去购买,如果都是在家里用的话,建议购买大尺寸的屏幕,如果经常外出的话,就选择小尺寸的。

平板电脑都是基本都是双核处理器,单核已不多见了,在2012MWC大会上各厂商、包括国内的中兴、华为都纷纷推出了自己的四核处理器平板电脑,由于四核的价格较高,所以主流的依然是双核处理器,有苹果Ax处理器、NVIDIA Tegra2处理器、intel ATOM处理器和ARM处理器几大类。

Android 输入法没有传递键盘DELETE事件

为了引出下面遇到的问题,提一下密码框删除的思路

删除细节:已输入密码删除移动焦点 ,和无输入内容时移动焦点

密码删除思路:拦截 DELETE 事件,清除输入框并取消焦点,让前一个输入框获取焦点。

测试妹子在使用华为P10 测试到这里的时候,发现删除键没用,她以为手机坏了。因为其他手机包括华为P9都可以响应删除并前移焦点。

开发手机我用的搜狗键盘没有问题,我切换回原生键盘再测发现——我勒个皮皮虾,毛反应都没有。测试妹子发现不是手机坏的,一个眼神光波差点把我炸到五米外。

这种奇葩坑必须深度挖一挖,不然还会被他的同类绊倒

设备:华为 ALT-TL00 5.0.1

因为这里是纯数字密码,设置属性 inputType 值为 numberPassword 。

测试日志发现,发现 ACTION_DOWN 、 ACTION_DOWN 、 DELETE 都没有获取到。

为了去除意外,我又测试了不设置 inputType ,果不其然全GG。

此时我真的感觉到了蛋疼 FUCK! 这是个锤子手机,心里默默吐槽了开发这个键盘的程序员兄弟。

翻了一下老司机的博客,和国外论坛。发现还有非常普遍的bug

在输入框,没有内容时不会传递 DELETE 相关事件

而我测试发现,这个华为手机上。无论输入框有无内容都没有传递出 DELETE 事件。

1.自定义开发一个键盘,这样就不用再测试其他机型或者其他厂牌的输入法。统一解决了这个问题。简单暴力,还可以附加密码输入安全策略。

但是项目已经快到尾声了,全局需要替换密码键盘。还要跟在国外的开发小伙伴沟通。

站在这两点上,项目经理否定了。让我先针对性的解决一下。

于是就有了下面的解决办法。

2.着手 EditText 对键盘事件的关联使用,覆盖事件监听接口为我们自定义的,只传递需要的 ACTION_DOWN 和 DELETE 事件。

这里我就不贴源码分析了,因为用到的方法只有两个,接口名字也是一读就懂。有兴趣的小伙伴可以去翻阅源码。

参考博客: Android 获取软键盘的删除delete事件

Android 输入法窗口焦点获取流程(2) ,输入法窗口和应用窗口绑定

基于Android9.x

Window和Session创建成功后,窗口的下一步流程为获取焦点

我们看下焦点获取过程,跟输入法相关的流程

两个Activity切换时,对应的状态变化过程为:

以下是Activity窗口初次获取焦点的流程

当两个activity 切换时,失去焦点的窗口调用过程如下:

对应的,获取焦点的额窗口的调用过程如下:

当B窗口的状态切换到RESUMED时,当窗口的focus可能变化时,会调用updateFocusedWindowLocked

在该方法中,判断,如果还没有执行startInputInner方法,则执行startInputInner方法,否则,直接执行startInputOrWindowGainedFocus方法

主要流程:

1:设置controlFlags的flag为CONTROL_WINDOW_FIRST

2:检查是否已经执行过startInputInner,没有的话执行startInputInner--startInputOrWindowGainedFocus;否则,直接执行startInputOrWindowGainedFocus

两条路径,携带的startInputReason参数不一样

主要流程:

1:检查要启动和退出的ServedView是否为同一个,如果为同一个,则表示已经执行过startInputInner,则返回false,表示不再执行startInputInner

2:如果获取焦点的是EditorText,会创建跟IMS通信的mServedInputConnectionWrapper对象

主要流程:

1:创建EditorInfo对象tba,这个参数对TextView布局才有意义,它的初始化是在mServedView的onCreateInputConnection完成实例化的

2:根据EditorInfo创建一个InputConnection对象,输入法应用通过该对象,完成输入内容到输入框的传递;ACTIVITY获取焦点场景,该对象

为null,因为没有要输入的对象

startInputOrWindowGainedFocus携带的参数

startInputReason = 1

表示,该流程是窗口获取焦点过程

mClient

应用层创建的IInputMethodClient对象,为服务层提供应用层的各个回调方法

该方法跟应用进程首次创建时Session时,传递到IMMS的对象是同一个对象

windowGainingFocus:

应用层的ViewRootImpl$W对象

controlFlags |= CONTROL_START_INITIAL;

表示window窗口刚开始获取焦点

softInputMode = SOFT_INPUT_ADJUST_RESIZE , 允许调整输入法窗口,避免被其他窗口遮挡

tba , EditorInfo对象

servedContext

null

missingMethodFlags

ic等于null的情况下,为0

当应用层传递的W对象windowToken不为null的时候,则创建windowGainedFocus对象,返回给app

结果返回后,会对IMM的对象进行赋值

如此,进入一个窗口,获取窗口焦点过程,窗口与输入法相关的流程,就结束了。

下一篇:输入法在输入框弹出流程

Android输入法(3),弹出流程

安卓系统怎么安装两个或多个输入法

Android手机可以安装多个输入法,并且方便的进行切换,这样可以适合各自的使用。

具体的安装和切换方法为:

1.首先下载安装包,然后解压后存放在内存卡中,然后点击安装。

2.安装完成后,我们在桌面按menu键,选择settings(设置)-LocaleText(区域和文本),这里有设置选项,根据自己的需要进行选择。

3.打开短信,在输入时按住输入框,会弹出选择输入法的对话框。

这样就可以很方便的对Android手机输入法进行切换了,目前使用较多的就是谷歌输入法和HTC输入法。

安卓手机先设置里对自己想用的输入法打钩,再在输入的地方长按住屏幕不放。即可。ok

参考:百度资料

Android手机输入法如何切换?

若使用的是vivo手机,可以进入设置--系统管理/更多设置--输入法--默认输入法--切换至想要设置的输入法即可。


文章标题:android输入法,Android输入法AOSP
本文来源:http://ybzwz.com/article/hoighh.html