Creating softkeyboard with custom emoji

AndroidGeek picture AndroidGeek · Nov 28, 2014 · Viewed 12.1k times · Source

I have been tasked to create a new android 3rd party keyboard that supports customized emojis (My own Icons) from assets.

I want to implement a softkeyboard with my own emoji icons without using UniCode or my custom UniCode.

Questions:

If I create a custom emoji, with some string of characters which does not map to the standard set of emojis, and text this message to a friend with the customized app/keyboard, what shows up on their device? The regular ASCII characters string? or the image.

I have read two ways to add image to textView.

  1. Html.ImageGetter

  2. Spannable Image (String consisting of image)

Which way should i prefer?

Is there anyway to display(send) the customized emoji on the recipients device without downloading the app/keyboard?

Is it possible to send text with Image(Emoji) to other apps like facebook,skype and for messaging.

Need suggestions.

Simple Words

I simply want to send my custom(Emoji icon) to other apps as this app does with out using unicode or with my custom UniCode.

Thanks.

Answer

Jim picture Jim · Jan 15, 2015

To answer the first part of your question, by definition Emoji are encoded characters - they are a part of unicode. See here:

http://emojipedia.org/unicode-8/

There are many references to this if you look. You will also discover that for a long time Apple and Google used two different sets. They are now merged, but then Android manufacturers and carriers have added their own emoji "versions."

Changing the keyboard to have custom images will not change the data that is transmitted to the other device. So, to answer the next part of your question: what shows up on their device is whatever the ASCII or Unicode character that was transmitted, not what the sender "typed."

In other words, to answer the next part of you question, generally speaking there is not a way to send custom characters to another device without them having your app. A keyboard would not suffice because apps do the job of displaying text/images. So unless an app knows that you are the content provider or source or whatever of the image, it will display whatever it knows to do. So, a custom keyboard won't even display custom emoji on your own device, unless you are also using your own app.

I said "generally not possible" because here are your options:

  1. You can become a part of the Unicode Consortium (http://unicode.org/) and submit your emoji images for approval to go into a future version of Unicode. There are future emoji already in the works, FYI. That will likely take several years, by the way, and it's unlikely they will approve commercially biased images. However, unicode has the capacity to handle billions of characters and is hardly even close to being full (Unicode 16, not Unicode 8 - Unicode 8 is full). Even then, the Android team would need to adopt it and include it in a future release like smileys and the current set of emoji are.

  2. You build your own app with your own emoji and get people on both sides of the communication to download it, like everyone else does. IMO, this not ideal for anyone but the developer of the app. Still, the ones that people enjoy I applaud for their work and success. That industry is fickle and difficult to really gain a presence in.

  3. I'm a part of sdmmllc.com - and we're trying to develop a messaging "platform" exactly for situations like yours. We want to allow messaging apps to "discover" other messaging apps, incorporate features like custom emoji, without the user getting confused or having to download tons of apps. This is similar to plug-ins in web browsers. Our developers love us, our users love us, but it's a slow process.

  4. Develop a competing platform. (And good luck with that - no one really seems to be getting the concept, except the few developers we have, and the hundreds of users that download our app every day and love our idea and platform... but there's no money it so far...)