我想要将正在扩展InputMethodService的自定义软键盘与另一个服务连接。我需要从通用服务的“软键盘”中调用方法。
问题是我无法扩展Binder类,因为onBind()方法是在AbstractInputMethodService中最终定义的...
现在,如何从其他服务调用SoftKeyboard类中的方法?
答案 0 :(得分:1)
我已经通过使用广播接收器类解决了这个问题。
class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("GET_KEY_KEY")) {
String msg = intent.getStringExtra("msg");
InputConnection ic = getCurrentInputConnection();
if (ic != null) {
ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT));
}
}
}
}
然后我向我的服务发送了广播。
Intent intent = new Intent();
intent.setAction("GET_KEY_KEY");
sendBroadcast(intent);