在 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 是在外部添加的。

但我不知道如何添加自己的键盘以便我可以选择这个?

【问题讨论】:

“它可以在任何设备上作为单独的应用程序正常工作”——这是什么意思?您是否实现了InputMethodEditorInputMethodService 不,我没有尝试使用下面给出的参考,但遇到了一些问题.. @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 设备中添加我自己的键盘而不是默认键盘作为输入的主要内容,如果未能解决你的问题,请参考以下文章

使用 Appium 时,Android 物理设备中的键盘并不总是隐藏

在运行时将行和键添加到android中的自定义键盘

在android中是否有任何方法可以获得设备虚拟键盘的高度

Android - 如何在软键盘出现时调整弹出窗口

即使连接了硬件键盘,也会显示iPhone软键盘

检测浏览器是不是在网页中有键盘/箭头键