제가 만드는 어플에서 키보드를 숨기는 기능이 있어요
기본 앱인 메세지에서 문자 입력창을 눌러도 키보드가 올라오지 않도록 하고 싶어요
제 어플에서 키보드 숨기기 기능을 on시키게 되면 서비스가 시작되면서
타이머가 작동하게 되구요
타이머 안에는 키보드 숨기는 기능이 계속 반복 실행되는데요. 좀 비효율적인거 같지만 아무리생각해도 좋은게 안떠오르네요..
메세지앱을 실행하게되면 이게 메세지앱인지 패키지이름으로 확인해서 맞으면 키보드를 숨기게하는거예요..
근데 아무리해도 키보드숨기기가 실행이 안되요ㅠㅠ
저기서 view가 문제인거 같은데 메세지앱이 실행됬을 때 문자입력창있는 화면을 어떻게 뷰로 받아올 수 있는 건가요?
view = activity.getCurrentFocus();
처음엔 이렇게해서 받았었는데 찾아보니까 context.getWindow().getDecorView() ; 이렇게 하라고 하시는 분들이 계시더라구요 해봤는데 getWindow()에서 에러가 나네요..
이거말고도 문제가 있을꺼같은데 뭐가 잘못인지 잘 모르겠어요 도와주세요ㅜㅜ
repeateTask = new TimerTask() {
public void run () {
Log.d("myTask", "run()");
View view = context.getWindow().getDecorView() ;
if (view != null) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
Log.d("running_check", "true");
}
}
};
timer.schedule(repeateTask, 0, 500);