Android開源:SoftInputMethodHolder - 通過 Hook 監聽系統軟鍵盤狀態
SoftInputMethodHolder
通過 Hook InputMethodManager 的方式監聽系統軟鍵盤的狀態, 當然不僅僅是監聽軟鍵盤,類似的還可以hook其他系統服務。
使用方式:
- 導入SoftInputMethodHodler作為依賴庫。
- 調用初始化方法 SoftInputMethodHolder.init(context); 該方法會 hook InputMethodManager,所以建議越早調用越好,比如在Application中的 void attachBaseContext(Context base) 方法中。
- 需要監聽的地方注冊監聽器: SoftInputMethodHolder.registerListener(onInputMethodListener);
- 不用忘記反注冊: SoftInputMethodHolder.unregisterListener(onInputMethodListener);
- 應用退出時最好調用: SoftInputMethodHolder.release(); 防止 Context 內存泄漏。
具體使用方法請看Sample,未做充分測試,在定制ROM中可能存在兼容性問題,歡迎提ISSUE
缺陷:
public interface OnInputMethodListener {
void onShow(boolean result);
/**
- 僅支持主動調用hideSoftInputFromWindow,會回調onHide()
- 通過系統按鈕關閉軟鍵盤的時候不會回調,
- 因為鍵盤在一個獨立的進程中,我們hook的只是本地進程的一個binder代理
*/
void onHide(boolean result);
}</code></pre>
github
本文由用戶 PriZ42 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!