Como impedir que o teclado virtual apareça na minha atividade?
Estou escrevendo um jogo para Android que roda no modo paisagem em tela cheia e tem botões colocados na parte inferior esquerda e na parte inferior direita da janela. O problema é que um desses botões está (em muitos telefones) ao lado do botão Menu; portanto, o player pode pressionar Menu acidentalmente.
Se for pressionado brevemente, simplesmente pause o jogo e mostro o menu do jogo. Não tem problema.
Mas se o botão for pressionado por mais tempo, o Android abrirá o teclado virtual na metade inferior da tela. Como ele atrapalha e é completamente inútil nesta atividade, eu gostaria de desativá-lo.
Eu tentei as seguintes abordagens.
Via InputMethodManagerDe:Oculte o teclado virtual em atividade sem nenhuma operação do teclado
Como tenho apenas uma visualização (umaGLSurfaceView
) Eu tentei isso no meuActivity.onCreate()
:
InputMethodManager imm = ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE));
imm.hideSoftInputFromInputMethod(glSurfaceView.getApplicationWindowToken(), 0);
Não funciona: o teclado virtual ainda aparece no Menu pressionando longamente.
Por meio do AndroidManifest.xmlDe:Como impedir que o teclado virtual Android apareça em todo o meu aplicativo
Adicionei isso ao meu manifesto:
<activity
android:windowSoftInputMode="stateAlwaysHidden"
>
Também não faz muita coisa.
Então ... existe mesmo um jeito? Quão?