安卓编程输入法
Ⅰ android 通过代码动态切换输入法
这个可以通过将输入法的ID写入系统设置中来完成,大概代码是这样的:
Settings.Secure.putString(mContext.getContentResolver()
,Settings.Secure.DEFAULT_INPUT_METHOD,"输入法的ID");
InputManagerService会监听这个设置项的改变。
Ⅱ 如何给不同的安卓程序设定各自默认的输入法
可以在,系统设置--语言和键盘--选择所需输入法。编辑短信,长按编辑窗口(输入内容之处)—输入法,选择何种输入法。
Ⅲ android ui怎么开发出搜狗输入法的程序
一、结构
public final class InputMethodManager extends Object
java.lang.Object
android.view.inputmethod.InputMethodManager
二、类概述
整个输入法框架(IMF)结构的核心API,应用程序之间进行调度和当前输入法交互。你可以用Context.getSystemService()取得这一接口的实例。
架构总述(Architecture Overview)
输入法框架(IMF)共有三个主要部分:
* 输入法管理器,管理各部分的交互。它是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务。
* 输入法(IME) ,实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
* 客户应用程序,通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
应用程序(Applications)
大多数情况下,使用标准TextView或其子类的应用程序只要做少量工作就可以让软键盘(soft input methods)正常工作。你要注意的是:
* 正确设置你的可编辑文本视图inputType,这样输入法有足够的上下文帮助用户向其输入文本。
* 当输入法显示时妥善处理隐藏屏幕空间。理想的情况下应用程序应处理窗口变小,如必要你可以利用系统执行平移窗口。你应在活动(activity)中设置windowSoftInputMode属性或调整创建窗口的相应值,以便系统决定平移或缩放(它会尝试自动调整但可能出错)。
* 你还可以通过相同的windowSoftInputMode控制窗口的首选软键盘状态(打开、关闭等)。
通过API可以与IMF及其IME交互实现更细致的控制,如显示或输入区域,用户选取某输入法等。
当你编写自己的文本编辑器的时候,你要实现onCreateInputConnection(EditorInfo)以返回你的InputConnection的接口实例,用来允许IME和你的文本编辑域来交互。
输入法(Input Methods)
一个输入法(IME)是Service(服务)的实现,通常继承自 InputMethodService。IME提供核心的 InputMethod接口,尽管提供InputMethod通常是由InputMethodService来处理,而IME的实现只需要处理更高层的API。
更多信息参阅InputMethodService。
安全(Security)
输入法关系到许多安全问题,因其基本不受约束地驱动UI并监视用户输入。Android输入法框架还允许调度第三方IME,所必须小心以限制他们的选择和相互作用。
以下是IMF背后安全架构的要点:
* 只允许系统访问经BIND_INPUT_METHOD权限许可访问IME的InputMethod接口。通过绑定到要求这个权限的服务来强制实现这一点。所以系统可以保证没有不被信任的客户端在它的控制之外访问到当前的输入法。
* IMF中可能有许多客户进程,但在同一时间只有一个是激活的。未激活客户端不能与IMF核心交互通过下述机制实现。
* 输入法客户端只可访问InputMethodSession接口。每个客户端创建一个接口实例,只有与激活客户相关联的会话的调用才会被IME处理。这点通过普通IME的 AbstractInputMethodService执行,必须由IME显式的处理,而IME正是InputMethodSession的自定义实现。
* 只有激活的InputConnection接受操作。IMF通知每个客户进程是否激活,IMF忽略非激活进程对当前输入联接的调用。这确保了当前IME只将事件和文本编辑交付用户可见焦点的UI。
* 一个IME永远不能在屏幕关闭时与 InputConnection交互。这是通过当屏幕关闭时所有客户端无效,并防止不良IME在用户无法关注其行为时驱动UI。
* 客户应用程序可以要求系统选取一个新的IME,但不能编程式选择之一。这是避免恶意程序在用户导航到其它应用程序时,选择自己的IME并保持运行。也就是说,IME可以编程式的要求系统选择其它IME,因它完全控制了用户输入。
用户在可切换至一个新的IME前必须显式的启用它,以确认系统了解它,使其处于可用状态。
Ⅳ 安卓手机的输入法设置 如何切换手机输入法
若使用的是vivo手机,可进入设置--系统管理/更多设置--输入法--默认输入法--切换至您想要设置的输入法即可;也可长按文本输入区域,点击切换图标(输入法)后选择自己想要的输入法。
Ⅳ 如何在Android开发中对输入法进行显示和隐藏
/**
*设置输入法,如果当前页面输入法打开则关闭
*@paramactivity
*/
publicvoidhideInputMethod(Activityactivity){
Viewa=activity.getCurrentFocus();
if(a!=null){
InputMethodManagerimm=(InputMethodManager)activity.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
try{
imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
}catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*强制显示输入法
*@paramactivity
*/
publicvoidtoggleSoftInput(Viewview){
try{
InputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
}catch(Exceptione){
}
}
以上两个函数,就是显示和隐藏,你直接调用一下即可
