前言

在最近的一个项目中需要下载、安装Google输入法并将默认输入法设置为Google输入法。后台下载APP这个就不说了,然后需要静默安装,这个大家可以百度或者Google一下,下载完成自动安装!

第一步打开系统输入法激活页面

Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS);
startActivity(intent);

第二步检测是否激活输入法

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
for(InputMethodInfo imi:imm.getEnabledInputMethodList()){    if(getPackageName().equals(imi.getPackageName())){      return true;   }
}

第三步检测默认输入法

        String defaultImme = Settings.Secure.getString(getContentResolver(),Settings.Secure.DEFAULT_INPUT_METHOD);if(defaultImme!=null&&defaultImme.contains(getPackageName())){return true;}return false;

第四步打开默认输入法选择对话框

((InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker();

问题:无法监听输入法是否激活

子类型如何影响输入
法子类型不会更改输入法服务的行为,因此输入法服务会根据Android框架向其报告的当前启用的子类型来更改其行为。输入法服务可以通过两种方式找出当前启用的子类型:向输入法管理员询问当前的子类型
从onCurrentInputMethodSubtypeChanged(InputMethodSubtype newSubtype)方法接收回调
要求输入法管理器
输入法管理器是一种系统服务,因此您可以从Android上下文中获取它(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE)。一旦你参考了输入法管理器,你可以使用final来询问当前的输入法子类型InputMethodSubtype currentSubtype = richImm.getCurrentInputMethodSubtype();。Input Method Manager的完整文档可以在这里找到。子类型更改的侦听器
该onCurrentInputMethodSubtypeChanged(InputMethodSubtype newSubtype)方法可以在输入法服务实现中被覆盖,以处理当前输入法子类型的更改。这可以在输入期间处理子类型的更改,但重要的是不要仅仅依靠此方法。输入法服务(使用子类型)应始终在onStartInput()或期间检查当前子类型onStartInputView()。可以通过第二步来得知输入法是否激 然后就是imp服务中的监听回调 无法拿到回调  

解决办法

在接收到IMP安装成功之后 跳转设置imp激活 不停的调用方法二来检测是否激活 激活就打开默认imp设置页面 循环检测是否设置成功 成功就回跳到app

Android设置输入法相关推荐

  1. Android 设置输入法[软键盘]将底部布局推上去

    效果 说明: 1适用范围Android 6.0(23)及以上,Android 5.0标题栏不太适配,看注释 2.也可以使用popwindow来实现,晚上很多例子了 操作如下 1.设置Manifest中 ...

  2. android 获取当前输入法,关于获取安卓手机系统输入法和设置输入法

    关于获取安卓手机系统输入法和设置输入法 获取输入法列表 adb shell ime list -s 出来下面的 io.appium.android.ime/.UnicodeIME com.sec.an ...

  3. android代码打开语言和输入法设置,Android默认输入法勾选多国语言,并默许其中一种语言...

    Android默认输入法勾选多国语言,并默认其中一种语言 1.首先在设备上调整输入法 设置>语言输入法>Android键盘(AOSP),在输入语言里勾选要选择的语言,比如选"英语 ...

  4. Android初学------系统设置之设置输入法

    /**** 获取默认输入法* @return*/public String getDefaultInputMethod(){return Settings.Secure.getString(conte ...

  5. android系统动态切换输入法,一种动态切换Android系统输入法的弹出模式的方法与流程...

    技术特征: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下: (1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230 ...

  6. android 之输入法

    输入法的例子和源代码看了不少时间了,看得头很晕,很郁闷.静下心来把整个代码想了一遍,其实大部分代码都在处理绘制界面,以及事件的处理,核心代码很少,都被底层封装得很完美了. 先看看一般输入法的界面: 分 ...

  7. android 默认输入法,踩坑之Android默认输入法配置

    前言 在实际项目开发过程中,需要集成客户的输入法,但Android原生并不支持输入法的配置.在这里记录下实际操作. 支持默认输入法配置 Android原生并不支持默认输入法的设置,默认就是谷歌原生的输 ...

  8. android自动切换输入法,一种动态切换Android系统输入法的弹出模式的方法

    主权项: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下:(1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230dp ...

  9. android 自定义输入法布局,Android自定义输入法使用方法

    Android自定义输入法使用方法 时间:2017-04-21     来源:Android开发学习网 对于Android用户而言,一般都会使用第三方的输入法.可是在输入密码时(尤其是支付相关的密码) ...

  10. android 输入法更换_一种动态切换Android系统输入法的弹出模式的方法与流程

    本发明涉及一种Android系统利用动态切换输入法的弹出模式解决输入法跳闪抖动问题的方法,属于安卓系统技术领域. 背景技术: 随着Android系统的快速发展以及安卓手机的不断普及,基于Android ...

最新文章

  1. GO语言教程4:defer(延迟语句)详解
  2. 阿里云推荐码:8N6TBT
  3. Linux 目录配置标准:FHS
  4. Java this, super深入理解
  5. C#中扩展StringBuilder支持链式方法
  6. FPGA实现VGA显示(一)——————屏幕驱动及color_bar显示
  7. python绘制函数x^2+y^2的3D图像
  8. 什么是法线贴图 今天教你如何制作法线贴图
  9. python opencv双目测距_OpenCV实现双目测距
  10. IDEA git 切换分支注意事项(好文章!!)
  11. 整蛊系列——使小伙伴的电脑自动关机
  12. 无法使用tftp下载Linux内核到开发板,总是显示TTTTTTTTT的原因
  13. matlab hist 横坐标,matlab中hist函数的用法_matlab中hist函数 将EXCEL 中的日期 时间 导入到MATLAB坐标轴中...
  14. Linux QT无法切换中文输入法
  15. 解决steamcommunity报错443/80端口被占用
  16. cmd无法打开jupyter notebook问题
  17. 自动驾驶数据闭环系列之一:理想丰满,现实骨感
  18. 图像内容修改—修改表格数字及文字
  19. (趣文)我是一个线程
  20. linux 文件缓存大小设置,Linux文件读写机制及优化方式

热门文章

  1. 数值积分 (一)| 基本思想 + 一般求积公式
  2. 如何恢复计算机隐藏的文件夹,隐藏文件夹,小编教你电脑隐藏文件夹怎么恢复...
  3. Java黑皮书课后题第6章:*6.7(金融应用:计算未来投资回报率)编写一个方法,计算按照给定的年数和利率计算未来投资回报值,未来投资回报值是用编程练习题2.21中的公式得到的,使用下面方法头
  4. python微分几何_十一年磨一剑:中科大数学教授成功证明微分几何学两大猜想
  5. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
  6. JAVA 实现AES加密解密
  7. 道士下山与黎万强的摄影展
  8. 批量将多个 Excel 工作簿文件合并成单个 Excel 文件
  9. MySQL复制表数据到新表的方法 亲测可用
  10. Minimum Snap轨迹规划详解(1)轨迹规划入门