Android : How to programmatically open the soft ke

2019-04-04 01:45发布

As I see, a way to show default emojis on android is by using the following on an input text.

android:inputType="textMultiLine|textShortMessage"

When I search, I can't find a way to do this through Java. What I want to make happen is that when the soft keyboard is open, have the user tab a button to switch between emoji view and normal keyboard view.

Custom Emoji Keyboard.

I've already implemented this, but it would be much better to and lighter to use Emojis already on the device for post kik-kat.

Google does switch between this views.

On Google Allo, pressing the emoji icon inside the editText switch views.

3条回答
倾城 Initia
2楼-- · 2019-04-04 01:45

After trying for a while I didn't achieved this goal even injecting a keyevent.

Looking in Google Allo, that looks as a custom implementation. I have switftkey themed keyboard and on KitKat Moto G (1st gen) it's very remarkeable. I tested also on a Marshmallow Moto G (2nd gen) with native keyboard, but contracted, and you can see that isn't the real soft keyboard :

enter image description here

I think there is no way to achieve this without a custom emoji's implementation.

查看更多
聊天终结者
3楼-- · 2019-04-04 01:52

Maybe this will help you:

https://blog.swiftkey.com/tech-blog-android-input-method-subtypes/

There is something like an Emoji Subtype as you can see following the link below.

public static RichInputMethodSubtype getEmojiSubtype()

https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/master/java/src/com/android/inputmethod/latin/RichInputMethodSubtype.java

查看更多
叛逆
4楼-- · 2019-04-04 02:10

TextView

Using TextView's input type does not contain what you want...

Keyboards

Seems you can show the user a list of available keyboards. (the ones that are available on that device)

And with that, see if it has an Emoji Key Board available. But needs at least Android 4.1 it seems.

Force Part of Key Board

Not possible as far as I can see. You can disable them, it seems.

*I would love to show how to do this, it looks like a neat thing to be able to do. But my google-fu does not show anything close :(

查看更多
登录 后发表回答