How to add own custom IME at Select Input method dialog - android

I'd like to show my own IME in the Select input method chooser dialog like the Japanese IME and the Chinese IME. How can I do that?
I am new to Android. I have tested Greek IME and other IME. Although .apk is successfully uploaded. But can't show in it and how to choose own IME from this place.
What do I need to do in my code?

You probably need to activate the installed keyboards before you can select them in the Input Method menu. For this you need to open Settings -> Language & Keyboard and in this menu check the keyboards you would like to use. This probably should get your GreekIME running.
Now for coding your own soft keyboard, there is an example which is delivered with the Android SDK. You can find it in <Andoid SDK Base>/samples/SoftKeyboard. The process is a bit poorly documented, but when you get the example up and running you can start to tweak the example a bit and you should get the hang of it.

Nice writeup about
Onscreen Input Methods from developer.android.com
In part ...
What is an input method?
The Android IMF is designed to support a variety of IMEs, including soft keyboard, hand-writing recognizers, and hard keyboard translators. Our focus, however, will be on soft keyboards, since this is the kind of input method that is currently part of the platform.

Related

How to programatically change keyboard language to Arabic?

I'm working on an Android app that needs to take input in Arabic whenever the User taps on an EditText view. So how do I change the keyboard language programatically or ask the User to do so?
I conducted extensive research and found out that it can be done via:
a) creating a custom Arabic keyboard,
b) using the IME manager to prompt the user to change input method by calling showInputMethodPicker(),
c) using the IME manager to change input method by calling setInputMethod.
of these, (c) is only workable for System apps, and (a) requires a lot of time (which I currently don't have), and (b) requires the user to manually enable it.
Is there absolutely ANY simple and workable way to accomplish this? Any external API that I could use or anything at all?
https://www.codeproject.com/Questions/996415/ceate-custom-arabic-keyboard-for-android
Above link can help you.For getting above required feature you need to make custom keyboard Arabic then open that keyboard when you type in edit text.

Numeric keyboard as default, but allow text

I'm currently developing an application targeted at android and desktop devices using apache cordova and HTML5.
In order to get the numeric keyboard to pop up I've used input type="number", which works fine.
However, the input field should also accept strings. The current functionality of type=number is that the ui seems to allow for strings to be entered, but the value property of the element is not changed if the input is invalid (e.g not numberic).
Is there a way of getting the numberic keyboard on mobile devices, while still being able to enter text?
My inital tries consisted of capturing the keydown event and manually setting the this.value property. I've tried this using jQuerys .val() and of course the more 'native' approach element.val += char. None of which work. UI is updated, but the change is not reflected in the model.
EDIT
For the next guy trying to achieve this.
1) The HTML solution.
As #LuudJacobs mentions in the comments below; There's currently no way to decide which keyboard is shown except for defining the type-attribute. Though some devices have a button to go back to alphabet keyboard, its not the case for every device. And can not be used reliably.
2) Writing a phonegap/cordova plugin.
It is possible to write a plugin to show and hide the keyboard at will. But, as far as I could find, there is currently no way of programmatically telling it to default to the symbols keyboard. Thus the functionality achieved is similar to using type=number and type=text in the HTML. Another problem with this approach is the diversity of keyboard for android devices, where even users themselves can install their custom keyboard. The functionality of the keyboard can are therefore unknown. What works on one device, may not work on the next.
3) JS/HTML/Canvas solution
Finally... A feasible solution. I suggest taking a look at this walkthrough as it shows an easy way to creating the keyboard using just html and js. Another option would be to use a canvas, and draw the keyboard yourself, but I would imagine that this is more error prone and harder to do.
As explained in the HTML5 spec you can not have anything but valid floats in a input type="number". So You can not. On a sidenote: how would users enter text when they'd only have a numeric keyboard?

Overriding Android Native Keyboard

I programmed a customKeyboard. What I need to do is to override native softkeybaord, system wide. Is it possible to do so? If yes, how can it achieve this and if no, then what are the alternatives to accomplish this task.
It's called an "Input Method Editor"
There are plenty of apps such as swiftkey and swype which are custom keyboards which work this way.
Basically, Android let's the user choose who will manager their input (both keyboard and touch).
After installing your keyboard (apk), the user has to enable it manually in Settings -> Language & Input -> Default Keybaord. As pointed out by #hatcyl, there are plenty of other apps out there taking the same approach.

IME Android Keyboard

I am trying to control the behavior off a an IME keyboard.
For instance the keyboard I downloaded uses combinations of characters(
say if you press "ß" + "π" it suggests "∑"
I am making this example up.
I would like to turn off this feature.
Usually asian keyboards uses this feature.
I dont know the tech term for this. I looked at spannable but not very helpful.
Thanks
The Keyboard example that comes with the sdk shows how to do this, plus the keyboard that comes installed on the phone is open source.
Here is a link
If you have any specific questions after looking these over I am sure you will be able to find answers here! Good luck!
If the keyboard doesn't have the option to turn it off, then it probably cannot be done. I don't think there is such a option in Android that applies to all keyboards.

Custom 'Keyboard' built in an application on Android

I've been looking to create a custom keyboard for my application. At first, I started to look at the SoftKeyboard for the SDK examples, but reading the Android Developer Group led me to this post:
This is really not how the input
method framework is supposed to work.
An IME should be a generic input
facility, not for a particular
application. If you need some
app-specific input, you should build
it into your UI rather than pushing
it out to a generic IME.
How do I build an app-specific input within the UI? I mean, is there a way to extend the Keyboard app or something and use it only in my application?
Features needed for the keyboard:
Shift key to display some other keys
Special keys like square root or PI
etc.
PS: an ugly solution could be to make a table of ImageButton for example, but I wanted to make something clean.
I'm not really sure if there's a straight-forward solution to this (to that extent that it is even possible to understand the real reason behind the original question).
As is quoted in the original question:
If you need some app-specific input, you should build it into your UI
rather than pushing it out to a generic IME.
What is meant by that, is not that you within your app should try to build in such input features by extending or modifying the soft keyboard on the phone. There are so many different soft keyboards (and basically, the soft keyboard is just another app), since most phone manufacturers create their own version, and people download 3rd party keyboards (such as Swype or SwiftKey etc.), and I can't picture there being a way for you to "hack" into those to add a few buttons or whatever it is you want (which could also be a major security hole, another reason why it probably isn't possible).
What instead the above quote suggests, is that you have to create some other form of input besides the keyboard. One such example, and a very good one if I might add, is how the RealCalc Scientific Calculator looks:
Now this isn't open source, so I can only guess how the code looks like (but it shouldn't be too hard a guess either): in its simplest form, this is just a grid with lots of buttons. Each button handles the onClick event, which would mean performing some kind of action (changing the label on some other buttons, showing a menu, displaying some text in the upper label or whatever), and that's probably pretty much what's to it. And of course, the phone's soft keyboard is never displayed (since you don't need a keyboard with all those buttons (and also there aren't any input fields to write anything in)).
It all boils down to the already mentioned quote: If you need some app-specific input, you should build it into your UI. Or in other words: create buttons (and don't display the soft keyboard if you don't need it) and make things happen when you click them.
And just to have mentioned it: if you do want to create your own IME (which I strongly believe is not the case here), you should have a look at the following resources:
Onscreen Input Methods
Creating an Input Method
Soft Keyboard sample
In my humble opinion you should take a look at the beginning of reference about keyboard and keyboard view http://developer.android.com/reference/android/inputmethodservice/Keyboard.html and http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html.
There you can see an example of defining keyboard using XML file. I think that this is what you are looking for.
As mentioned by #sebap123
Keyboard and KeyboardView class are the one you need to use,
Further, for Implementation, here is a quick detailed guide.

Categories

Resources