surfaceView화면에서 softkeyboard를 띄우기 위해 아래와 같은 코드를 삽입하였습니다.

InputMethodManager imm =  
                  (InputMethodManager)  getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

boolean  ret = imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);

ret 값이 false가 넘어오면서 keyboard가 뜨지 않습니다..

그런데 H/W 키보드의 navi키를 누른 후에 (KEYCODE_DPAD_LEFT/RIGHT/UP/DOWN 이벤트 발생) sufaceView화면에서 마우스 클릭하면 softKeyboard가 뜹니다..

키보드가 뜬 이후에도  key를 누르면 key값이 onKeyDown/onKeyUp() 으로 전달 되지 않다가, navi키를 누른 후에  key를 누르면 onKeyDown/onKeyUp()가 호출이 됩니다...

 softkeyboard를 띄울때 특별한 루틴이 없어 보이는데, 한번에 keyboard가 뜨지 않는 이유가 뭘까요..?