远程文字输入如何实现

abel_liu 2014-01-06 07:13:58
各位高手,
现在我要做一个功能,就是在安卓平台上运行一个service,然后来监听通过socket发过来的文字,如果当前窗口有editText获得了焦点,就把获取到的文字输入到editText文件显示,具体应该怎么实现,我现在可以获取到文字,但是不知道如何输入到当前屏幕的editText里。求高手指点。
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
abel_liu 2014-01-13
  • 打赏
  • 举报
回复
引用 7 楼 piaohong 的回复:
准确的说,启动输入法一次后service就一直在后台运行了,没有输入文字也在运行
引用 5 楼 abel_liu 的回复:
那这样这个service不是就只有在输入文字时候才可以启动,我还需要这个service处理一些其他事情,比如调节音量等。需要service随系统一直在运行
这个service是想要开机就运行的,如果不启动输入法,就运行不了service了。。
abel_liu 2014-01-07
  • 打赏
  • 举报
回复
不要沉不要沉了
abel_liu 2014-01-07
  • 打赏
  • 举报
回复
引用 1 楼 piaohong 的回复:
做成一个输入法,在输入法里监听socket。 输入法里能获取当前获取焦点的editText
我把这个service写成一个InputMethodService,调用了
InputConnection ic = getCurrentInputConnection();
		if(ic != null) {
		    ic.commitText(input, input.length());
		}
但是这个inputConnection一直是空的,无法获取到。这个是什么原因呢。
飘之鸿 2014-01-07
  • 打赏
  • 举报
回复
做成一个输入法,在输入法里监听socket。 输入法里能获取当前获取焦点的editText
飘之鸿 2014-01-07
  • 打赏
  • 举报
回复
准确的说,启动输入法一次后service就一直在后台运行了,没有输入文字也在运行
引用 5 楼 abel_liu 的回复:
那这样这个service不是就只有在输入文字时候才可以启动,我还需要这个service处理一些其他事情,比如调节音量等。需要service随系统一直在运行
Simple魏 2014-01-07
  • 打赏
  • 举报
回复
根据你描述的,剩下的只是Service与Activity之间的通信了。目前我想到的有两种方式:第一种、使用BroadcaseReceiver;第二种、实现AIDL进程间通信。
abel_liu 2014-01-07
  • 打赏
  • 举报
回复
那这样这个service不是就只有在输入文字时候才可以启动,我还需要这个service处理一些其他事情,比如调节音量等。需要service随系统一直在运行
引用 4 楼 piaohong 的回复:
有没有启用这个输入,并且选择了这个输入法呢 并且在AndroidManifest.xml中有没有声明这个service为输入法呢 <service android:name="MyFsatInput" android:permission="android.permission.BIND_INPUT_METHOD" > <intent-filter> <action android:name="android.view.InputMethod" /> </intent-filter> <meta-data android:name="android.view.im" android:resource="@xml/method" /> </service> [quote=引用 2 楼 abel_liu 的回复:] [quote=引用 1 楼 piaohong 的回复:] 做成一个输入法,在输入法里监听socket。 输入法里能获取当前获取焦点的editText
我把这个service写成一个InputMethodService,调用了
InputConnection ic = getCurrentInputConnection();
		if(ic != null) {
		    ic.commitText(input, input.length());
		}
但是这个inputConnection一直是空的,无法获取到。这个是什么原因呢。[/quote][/quote]
飘之鸿 2014-01-07
  • 打赏
  • 举报
回复
有没有启用这个输入,并且选择了这个输入法呢 并且在AndroidManifest.xml中有没有声明这个service为输入法呢 <service android:name="MyFsatInput" android:permission="android.permission.BIND_INPUT_METHOD" > <intent-filter> <action android:name="android.view.InputMethod" /> </intent-filter> <meta-data android:name="android.view.im" android:resource="@xml/method" /> </service>
引用 2 楼 abel_liu 的回复:
[quote=引用 1 楼 piaohong 的回复:] 做成一个输入法,在输入法里监听socket。 输入法里能获取当前获取焦点的editText
我把这个service写成一个InputMethodService,调用了
InputConnection ic = getCurrentInputConnection();
		if(ic != null) {
		    ic.commitText(input, input.length());
		}
但是这个inputConnection一直是空的,无法获取到。这个是什么原因呢。[/quote]

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧