标签: android-input-method

如何通过输入法服务将KeyEvent发送到Dialog或Spinner菜单?

我正在尝试实现一个输入方法服务,该服务接收远程客户端发送的意图,并响应那些发送适当的KeyEvent.

我正在使用input method service这种方法

private void keyDownUp(int keyEventCode) 
{
    getCurrentInputConnection().sendKeyEvent(
              new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
    getCurrentInputConnection().sendKeyEvent(
              new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}
Run Code Online (Sandbox Code Playgroud)

KeyEvents如在Simple Sofykeyboard Sample,发送它在家里工作Activities...但是当一个对话框或一个微调器的菜单在前景时它不起作用.

事件被发送到parent activity behind the Dialog.

有没有办法发送密钥和控制设备,如使用输入法的硬件密钥?

更好地解释我正在尝试做什么:

我有点写一个输入法,允许从远程控制设备.

我在一个客户端(我桌面电脑上的一个java应用程序)中编写一个命令(例如"UP"),设备上的服务器sendBroadcast()发送带有信息的意图,输入方法中的接收器获取它并调用keyDownUp在keycode对的DPAD_UP key. 它一般的作品,但是当我去到一个应用程序,显示一个对话框,该keyDownUp方法不将该键事件发送到dialog,例如用于选择是或否按钮,但它一直控制activty后面Dialog.

在这里, 我发现有同样问题的人...但没有答案......

android key-events android-softkeyboard android-input-method

5
推荐指数
1
解决办法
3878
查看次数

Android IME:显示一个自定义弹出对话框(如Swype键盘),可以在TextView中输入文本

我想知道如何创建一个自定义弹出窗口,如下面的截图(从Swype键盘借用),我可以有几个按钮,每个按钮提交一个字符串到当前"连接" TextView(通过一个InputConnection).

请注意:这是一个InputMethodService而不是普通的Activity.我已经尝试启动一个单独ActivityTheme:Dialog.然而,一旦打开,我就会失去我的焦点TextView而且我的键盘消失了(而且我InputConnection的消失了).

Swype的

keyboard android ime android-input-method

5
推荐指数
1
解决办法
3858
查看次数

输入法如何请求'updateCursor'事件?

我们正在实现自定义输入法服务,并且我们有兴趣接收游标更新事件。InputMethodSession的updateCursor()的文档说:“ 当目标输入字段的光标位置在其窗口内更改时,将调用此方法。通常不调用此方法,但仅在输入方法要求时才报告。

输入法如何请求此事件?

提前致谢,

安德里

android android-input-method

5
推荐指数
1
解决办法
1286
查看次数

是否可以同时激活物理键盘和软键盘?

我的应用程序需要同时激活两个输入源:条形码扫描器和软键盘.当我配对蓝牙扫描仪时,它被视为物理键盘.因此,连接此设备时,不显示软键盘(软键盘已停用).

是否可以同时激活物理键盘和软键盘?如果没有,解决问题的最佳方法是什么?我是否必须实现一个自定义视图来下载按键事件?市场上是否有任何键盘应用程序可以做到这一点?

我如何以编程方式打开和关闭物理键盘?这是切换按钮"使用物理键盘"设置(我在此处找到了此设置的屏幕截图:

在此输入图像描述

android android-input-method

5
推荐指数
1
解决办法
1425
查看次数

是否可以在输入法布局中包含片段?

是否可以将a Fragment作为输入法(IME)的一部分?

麻烦的是我的输入法必须extends InputMethodService意味着它不是一个FragmentActivity

android android-input-method android-fragments

5
推荐指数
0
解决办法
504
查看次数

在Android上启用和控制鼠标光标

我正在寻找一种方法来启用android上的鼠标光标并通过代码控制运动。与通过USB-OTG插入鼠标时相同-但不这样做。是否有任何API或其他方式可以做到这一点?

android android-input-method

5
推荐指数
0
解决办法
2684
查看次数

检测是否已选择输入法

在我的应用程序中,我需要让用户选择一个输入法.一旦它被选中,我应该执行一些任务.如何检测到用户实际选择了InputMethod

这是用于显示InputMethod列表的代码.

InputMethodManager imeManager = (InputMethodManager) mw.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imeManager != null) {
    imeManager.showInputMethodPicker();
} else {
    Toast.makeText(mw.getApplicationContext(), "IME ERROR",
    Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)

android android-input-method

5
推荐指数
2
解决办法
2810
查看次数

列表视图滚动时隐藏软输入

xml如下.

在此输入图像描述

我想实现这样的功能:当我点击edittext时,软输入显示.当我滚动(不滚动到OnScrollListener.SCROLL_STATE_IDLE状态)列表视图时,软输入隐藏.

我用的是 android:windowSoftInputMode="adjustResize".

android android-listview android-input-method

5
推荐指数
1
解决办法
3448
查看次数

InputMethodService的Instrumentation测试用例

我已经扩展了InputMethodService类来创建我的自定义IME.但是,我正在努力编写有效的Instrumentation测试用例来验证行为.以前Service,可以使用测试ServiceTestCase<YourServiceClass>.但它似乎已被弃用,新格式看起来像这样.现在在给定的指导方针中,我正在努力解决这个片段:

CustomKeyboardService service =
            ((CustomKeyboardService.LocalBinder) binder).getService();
Run Code Online (Sandbox Code Playgroud)

由于我正在扩展InputMethodService,它已经抽象了IBinder,我怎样才能LocalBinder获得这个代码片段的运行?目前,此代码段抛出以下异常:

java.lang.ClassCastException:android.inputmethodservice.IInputMethodWrapper无法强制转换为com.osrc.zdar.customkeyboard.CustomKeyboardService $ LocalBinder

扩展类看起来像:

public class CustomKeyboardService extends InputMethodService {

    // Some keyboard related stuff

    public class LocalBinder extends Binder {

        public CustomKeyboardService getService() {
            // Return this instance of LocalService so clients can call public methods.
            return CustomKeyboardService.this;
        }
    }

    // Some keyboard related stuff

}
Run Code Online (Sandbox Code Playgroud)

如何扩展我的自定义类,以便CustomKeyboardService service = ((CustomKeyboardService.LocalBinder) binder).getService();不返回错误?

这是我的测试用例代码:

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest2 …
Run Code Online (Sandbox Code Playgroud)

android android-input-method servicetestcase android-service-binding android-instrumentation

5
推荐指数
1
解决办法
121
查看次数

Android java android.support.design.widget.TextInputLayout 带有清除按钮

有没有什么方法可以得到类似的东西,加上在文本包含某些内容时清理/删除文本的按钮?

<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Inserisci Username">

                    <EditText
                        android:id="@+id/editText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Username"
                        android:inputType="text" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

java android android-input-method android-edittext

5
推荐指数
2
解决办法
6027
查看次数