在 Android 设备中添加我自己的键盘而不是默认键盘作为输入
Posted
技术标签:
【中文标题】在 Android 设备中添加我自己的键盘而不是默认键盘作为输入【英文标题】:Adding my own keyboard instead of default keyboard in Android device as input 【发布时间】:2013-07-02 14:15:30 【问题描述】:我开发了一款安卓键盘。它工作正常 任何设备上的单独应用程序。现在我需要在以下位置展示我的应用:
(设置->输入)
下图显示了设备中添加的外接键盘:
如图所示,android 键盘是默认键盘。
示例:Swiftkey 3 是在外部添加的。
但我不知道如何添加自己的键盘以便我可以选择这个?
【问题讨论】:
“它可以在任何设备上作为单独的应用程序正常工作”——这是什么意思?您是否实现了InputMethodEditor
和InputMethodService
?
不,我没有尝试使用下面给出的参考,但遇到了一些问题..
@CommonsWare 我添加了 InputMethod,它在设置中显示了我的键盘选项,如上图所示,但是当我想用内置设备键盘替换我的自定义键盘时,它给了我错误....
【参考方案1】:
你应该先看看here。然后继续这个线程here,如那里所述:
一些提示:
阅读本教程:Creating an Input Method 克隆这个仓库:LatinIME一个 inputMethod 基本上是一个 Android Service
,所以是的,你可以做 HTTP 和你可以在 Service
做的所有事情。
您可以打开Activities
和来自InputMethod
的对话框。再一次,它只是一个Service
。
Here 的另一篇关于该主题的教程。我希望这一切对你有所帮助。
干杯
【讨论】:
我已经使用了这个参考,但没有得到解决方案,你是否成功实现了这个帮助,所以你的键盘将从设置中运行,而不是作为单独的应用程序运行。 您使用了哪个参考文献?你看过下面的教程吗? @Aniket - 这个问题是? 它在模拟器上运行没有任何错误,而且如果我在任何远程 android 设备上使用 apk 文件运行我的应用程序,它运行成功,但你知道我的应用程序不再是用户应用程序,它必须通过替换内置键盘作为系统应用程序工作,这就是为什么,我只更改了我的 android Menifest.xml 文件,注意其他......【参考方案2】:您必须创建 InputMethodService... 并在 Menifest.xml
文件中添加以下代码
<service android:name="FastInputIME"
android:label="@string/fast_input_label"
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>
许可:
<uses-permission android:name="android.permission.BIND_INPUT_METHOD"/>
【讨论】:
嗨@CapDroid,我已经使用了上面所说的xml配置,所以我的应用程序成功显示在android设备的设置选项中,但是当我想从android默认键盘切换到我的自定义键盘时出现这样的错误“不幸的是 MyKeyboard 已停止”。你有这方面的吗?我已经在 SO 上详细发布了我的问题,但没有得到任何回复...请帮助我..... @Aniket 表示您的应用程序中出现错误。检查 logcat 错误。 你知道@CapDroid 现在我的系统应用程序中的应用程序在远程 android 设备上运行,所以我如何检查 logcat.... 是的,我已经检查过它在我的模拟器以及更改代码后的设备上正常工作..... 不需要许可以上是关于在 Android 设备中添加我自己的键盘而不是默认键盘作为输入的主要内容,如果未能解决你的问题,请参考以下文章