Câu hỏi ngắn: Có thể (và cách) hiển thị bàn phím mềm từ một Dịch vụ không?Làm thế nào để hiển thị Bàn Phím Mềm từ một Dịch Vụ?
Câu hỏi dài: Tôi đã viết một dịch vụ tạo "thanh trên cùng", được hiển thị trên đầu tất cả các hoạt động, chứa EditText. Tôi muốn hiển thị bàn phím mềm khi EditText được nhấp, nhưng điều này không xảy ra.
Tất nhiên tôi đã thử điều này từ onFocusChange sử dụng Dịch Vụ() và onClick():
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
Cách giải quyết tôi đã đưa ra là để yêu cầu các hoạt động hiện tại để hiển thị bàn phím, bằng cách mở rộng Hoạt động và thêm giao diện AIDL. Hạn chế là mỗi sự kiện quan trọng phải được gửi trở lại Dịch vụ (thông qua một inteface AIDL khác) và được chuyển đổi thành Unicode theo cách thủ công.
Hơn nữa, nếu hoạt động hiện tại chứa EditText, bàn phím mềm chỉ hoạt động cho hoạt động và không hiển thị nữa khi EditText của dịch vụ được chọn.
Điều gì ngăn bàn phím mềm của dịch vụ được hiển thị nếu hoạt động hiện tại có EditText? Nó có thể là một hạn chế Android?
bạn đã giải quyết này? Tôi đang đối mặt với cùng một vấn đề –