It isn't possible to force a keyboard in a non rooted phone, since there's a security block. You can however ask the user to select your keyboard as in Robert's answer:
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
imeManager.showInputMethodPicker();
And yes, you can add it in your application, you just need to add the keyboard code within your app, take a look a this question to see how to make a keyboard. But the most important part probably is the Manifest, because it is what will make your application show in the input method picker:
Code by Suragch:
<manifest ...>
<application ... >
<activity ... >
...
</activity>
<service
android:name=".MyInputMethodService"
android:label="Keyboard Display Name"
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>
</application>
</manifest>