InputMethod 中的 AirView 不起作用
我正在尝试使用三星 Galaxy S4 的新 AirView 功能,特别是 onHover 事件。我已经让它在正常的应用程序中运行...
- 针对 API 级别 17
- 提供 onHover 事件监听器
- 为 com.sec.android.airview.HOVER 设置意图过滤器
现在我想将它用于输入法。我的问题是输入法的视图没有得到任何 onHover 事件,即使我也设置了 airview 意图过滤器:
AndroidManifest.xml 的摘录:
<application android:label="@string/ime_name"
<service android:name="com.example.keyboard"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>
<intent-filter>
<action android:name="com.sec.android.airview.HOVER" />
</intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method" />
</service>
</application>
目前,我的输入法布局中有一个带有单个按钮的简单 LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hover Button"
android:id="@+id/hoverbutton2"/>
</LinearLayout>
事件监听器设置如下:
Button hoverButton = (Button) mInputView.findViewById(R.id.hoverbutton2);
hoverButton.setOnHoverListener(new View.OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
Log.d(TAG, "hoverButton2: onHover");
return false;
}
});
以相同方式设置的 onClick 侦听器按预期工作。
任何指针?