Short question: Is it possible (and how) to display the soft-keyboard from a Service?
Long question: I wrote a service which creates a
I have faced a similar issue. I have solved it now. Maybe it's too late but may it helps someone. Possible Cause of Error: Setting FLAG_NOT_FOCUSABLE during LayoutParams
Window flag: this window won't ever get key input focus, so the user can not send key or other button events to it. Those will instead go to whatever focusable window is behind it.
Simply Replace FLAG_NOT_FOCUSABLE with 0
Use this below code:
InputMethodManager imm = null;
mView.findViewById(R.id.editText).setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
if(imm==null){
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0 );
}
}
});
2nd When creating LayoutParams
private WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
0,
PixelFormat.TRANSLUCENT);
I am facing similar issue. But in my case, problem is due to use of WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE flag while creating WindowManager.LayoutParams for view.
And for Keyboard visibility
InputMethodManager inputManager = (InputMethodManager) context.
getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputManager != null) {
inputManager.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);
}
If you want to show Soft Keyboard on edittext's touch, Why don't you consider using onTouchListener with that edittext. I beleive edittext.requestfocus() will also do this. If not, listener would definately work.
Moreover for the kind of view you mentioning, it would have been best to use fragments instead of service to create view.