如何从我的服务打开(开关,设置)软键盘?
我的应用程序不包含任何活动。但我在我的服务中尝试在触发器上打开软键盘,当alient应用程序出现在屏幕上时。我在InputMethodManager的方法中找到了setInputMethod。第二个参数是键盘的id。我知道。但是第一个参数是IBinder。我的应用程序中的IBinder参数是什么?
添加详细信息:
我的应用程序由Service和InputMethodService组成。
在服务分析中启动系统中的应用程序。在InputMethodService中-我的软键盘(IME)。如果在我的服务中我决定什么是启动正确的应用程序(我不拥有这个应用程序),我需要将当前的softkeyboard切换到我的输入法服务的输入法。只有开关,不能打开键盘。当用户点击客户端应用程序中的可编辑视图时,系统会打开我的软键盘。
发布于 2013-01-17 20:41:05
我的Service解决方案代码
((InputMethodManager) contextService.getSystemService( Context.INPUT_METHOD_SERVICE)).setInputMethod( null, myInputMethodId);
((InputMethodManager) contextService.getSystemService( Context.INPUT_METHOD_SERVICE)).toggleSoftInputFromWindow( null, 1, 0);附注:只有当我的应用程序是系统时,这才有效( setInputMethod的第一个参数中的null仅在我的应用程序是系统时可用)。我使用mv /data/app/myapp.apk /system/app/myapp.apk (基于https://stackoverflow.com/a/14257161/1665964)以编程方式获得我的应用程序的系统权限。
https://stackoverflow.com/questions/13986307
复制相似问题