Android4.0.x Home鍵事件攔截監(jiān)聽的方法
本文實例講述了Android4.0.x Home鍵事件攔截監(jiān)聽的方法。分享給大家供大家參考,具體如下:
在2.3.x 的主要做法如下,具體實現(xiàn)網(wǎng)上有很多文章
@Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); }
代碼移植到4.0.1后 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 這行報錯,
錯誤提示:java.lang.IllegalArgumentException: Window type can not be changed after the window is added。
可以有兩種處理方式
方法一、修改PhoneWindowManager.java
if (keyCode == KeyEvent.KEYCODE_HOME) { //在這里發(fā)送一個廣播出去 }
在應(yīng)用里接收到廣播后做相應(yīng)處理,一般是做手機項目才會去改源碼。
方法二、檢測log,根據(jù)log判斷是否有點擊Home鍵
private boolean isTesting = true; class CatchLogThread extends Thread { @Override public void run() { Process mLogcatProc = null; BufferedReader reader = null; String line; while (isTesting) { try { // 獲取logcat日志信息 mLogcatProc = Runtime.getRuntime().exec(new String[] { "logcat", "ActivityManager:I *:S" }); reader = new BufferedReader(new InputStreamReader(mLogcatProc.getInputStream())); while ((line = reader.readLine()) != null) { if (line.indexOf("android.intent.category.HOME") > 0) { isTesting = false; handler.sendMessage(handler.obtainMessage()); Runtime.getRuntime().exec("logcat -c");//刪除日志 break; } } } catch (Exception e) { e.printStackTrace(); } } } }; Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { Log.i(TAG,"Home key press"); //do something here }; };
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android與H5交互產(chǎn)生Script Error踩坑解決
這篇文章主要為大家介紹了Android與H5交互產(chǎn)生Script Error問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08使用androidx BiometricPrompt實現(xiàn)指紋驗證功能
這篇文章主要介紹了使用androidx BiometricPrompt實現(xiàn)指紋驗證功能,對android指紋驗證相關(guān)知識感興趣的朋友跟隨小編一起看看吧2021-07-07Android實現(xiàn)支持進度條顯示的短信備份工具類
這篇文章主要介紹了Android實現(xiàn)支持進度條顯示的短信備份工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03Android studio中生成引用.aar和.jar的方法詳解
這篇文章主要是講解.aar的生成與引用,文中的內(nèi)容屬于完全基礎(chǔ)性概念,對剛學(xué)習(xí)使用Android studio的朋友們很有幫助,有需要的可以參考學(xué)習(xí),下面來一起看看吧。2016-09-09Android EditText隨輸入法一起移動并懸浮在輸入法之上的示例代碼
這篇文章主要介紹了Android EditText隨輸入法一起移動并懸浮在輸入法之上,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06基于TransactionTooLargeException異常分析
下面小編就為大家分享一篇基于TransactionTooLargeException異常分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11