我正在開發一個鎖屏應用程序,到目前爲止已經實現了應用程序工作所需的一切。如何禁用Android 4.0以上版本的Home/Menu按鈕?
但我無法禁用在Android設備中虛擬以及虛擬軟件可用的主頁/菜單按鈕。我已經在SO和其他網站上經歷了所有可能的答案,但無法實現。
是否有任何測試和工作的解決方法? 在此先感謝。
我正在開發一個鎖屏應用程序,到目前爲止已經實現了應用程序工作所需的一切。如何禁用Android 4.0以上版本的Home/Menu按鈕?
但我無法禁用在Android設備中虛擬以及虛擬軟件可用的主頁/菜單按鈕。我已經在SO和其他網站上經歷了所有可能的答案,但無法實現。
是否有任何測試和工作的解決方法? 在此先感謝。
一種方法是顯示一個對話框,其中LayoutParams
類型設置爲TYPE_SYSTEM_ERROR
,並將此對話框的所有者設置爲您的「鎖定屏幕」活動以阻止主頁按鈕。
這裏是一個如何可以做到這一點的例子: 更新:看起來像這樣只預Android的4 + https://github.com/Joisar/LockScreenApp/blob/master/LockScreenApp/src/com/mehuljoisar/lockscreen/utils/LockscreenUtils.java
另一種方式的工作原理是直接添加contentView
的窗口管理器,其中LayoutParams
類型設置爲TYPE_SYSTEM_ERROR
...
onCreate(){
//setContentView(R.layout.main_content);
//instead add a View directly to the WindowManager
View contentView = View.inflate(this, R.layout.main_content, null);
LayoutParams lockLayoutParams = new LayoutParams();
lockLayoutParams.width = LayoutParams.MATCH_PARENT;
lockLayoutParams.height = LayoutParams.MATCH_PARENT;
lockLayoutParams.type = LayoutParams.TYPE_SYSTEM_ERROR;
//LOCK
getWindowManager().addView(contentView, lockLayoutParams);
...
//UNLOCK
getWindowManager().removeView(contentView);
缺點我有這種方法是,它看起來不支持更復雜的看法。我在片段等得到了很多閃爍的與列表視圖
這何處使用示例項目:
更多的答案similiar的問題在這裏:How to disable Home and other system buttons in Android?
我嘗試過使用它,但未能如願。它也只會阻止虛擬主鍵? @TouchBoarder –
當我嘗試它阻止了硬主頁按鈕,但這是在4.1的三星。我將在稍後與一個項目進行測試,看看它是否仍然有效? – TouchBoarder
非常感謝... –