1

如何从我的服务中打开(切换、设置)软键盘?

我的应用程序不包含任何活动。但是当屏幕上出现外星应用程序时,我尝试在我的服务中触发打开软键盘。我在InputMethodManager's 方法中找到setInputMethod。第二个参数是键盘的 id。我知道。但第一个论点是IBinder。我的应用程序中的 IBinder 参数是什么?

添加详细信息:

我的应用程序由Service和组成InputMethodService

在服务中 - 分析系统中的启动应用程序。在InputMethodService- 我的软键盘 (IME)。如果在我的服务中我确定什么是正确启动应用程序(我不拥有此应用程序),我需要将当前切换softkeyboard到我的 InputMethodService 的 IME。只开关,不开键盘。当用户点击客户端应用程序中的可编辑视图时,系统会打开我的软键盘。

4

1 回答 1

0

我的解决方案代码Service

    ((InputMethodManager) contextService.getSystemService( Context.INPUT_METHOD_SERVICE)).setInputMethod( null, myInputMethodId);
    ((InputMethodManager) contextService.getSystemService( Context.INPUT_METHOD_SERVICE)).toggleSoftInputFromWindow( null, 1, 0);

ps 仅当我的应用程序是系统时才有效(null第一个参数setInputMethod仅在我的应用程序是系统时可用)。我以编程方式获取我的应用程序的系统特权mv /data/app/myapp.apk /system/app/myapp.apk(基于https://stackoverflow.com/a/14257161/1665964)。

于 2013-01-17T12:41:04.647 回答