我正在为Android编写一个键盘替换应用程序,我需要键盘定制足够,我需要在活动中运行它,而不是将其保留在InputMethodService
类中。下面是我如何从我的InputMethodService
类调用键盘:
@Override public void onStartInputView(EditorInfo attribute, boolean restarting) {
super.onStartInputView(attribute, restarting);
Intent intent = new Intent(this, Keyboard.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(intent);
}
我现在遇到的问题是,我不能更新文本字段,从键盘输入应该去。我尝试在我的服务类中创建一个静态InputConnection,然后从Activity更新它,但什么也没有发生。
所以我想这是我的问题:我能够找到很多关于如何从服务发送数据到活动的信息,但没有关于从活动发送数据到服务(特别是输入法服务)的信息。有人知道怎么做吗?
使用Binder
这个关于音乐播放器服务的教程是一个很好的例子http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-ii
特别是这一行
mpInterface.addSongPlaylist(file.getName());