2011-06-28 138 views
7

我知道,控制用戶的HOME按鈕是病態的建議。但我正在開發一個用於教育目的的android鎖定應用程序。我正在瀏覽該網站,並在禁用主頁按鈕時遇到此link禁用主頁按鈕

@override 

public void onAttachedToWindow() 
{ 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
     super.onAttachedToWindow(); 
} 

目前我使用上面的代碼以禁用我的home鍵,然而,我發現,即使我有這個在我的onCreate

getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

我無法刪除我的通知欄中刪除。 請指教。

回答

8

只爲您的活動使用不同的主題。在您的Manifest.xml中,將您的活動的主題屬性設置爲android:theme =「@ android:style/Theme.NoTitleBar.Fullscreen」

+0

我做到了,但頂部還有通知欄。 不過,如果我把它放在 確實工作<應用軟件Android:標籤= 「@字符串/ APP_NAME」 機器人:主題= 「@安卓風格/ Theme.NoTitleBar.Fullscreen」> 加上電源關閉和開啓後,通知欄會再次出現。 – edyim

+0

其他人都有解決方案。我現在很絕望。 :( – edyim

+0

你是否在所有的活動中使用了相同的主題?似乎有可能是某個地方不匹配? –

3

您可以禁用電源按鈕! 你可以試試這個: 項目:DisableAllButton

  • 禁用搜索,返回鍵: 在 「DisableAllButton.java」

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        return false; 
    } 
    
  • 禁用Home鍵: 在 「DisableAllKey.java」

    @Override 
    public void onAttachedToWindow() { 
        // TODO Auto-generated method stub 
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
        super.onAttachedToWindow(); 
    } 
    
  • 禁用Powerkey: 在 「DisableAllKey.java」

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
    KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
    lock.disableKeyguard(); 
    
  • 在AndroidManifest

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission> 
    
  • ,並設置全屏 在AndroidManifest

    <application android:icon="@drawable/icon" android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
    

完成! :d。

+0

感謝您的輸入,但是這並不是我想要的應用程序我的應用程序基本上是一個鎖屏這是由短信觸發的。當前手機屏幕「開」,如果短信到達活動開始時沒有通知欄。但是,如果屏幕處於「關閉」狀態,KeyguardManager會刪除android鍵盤屏幕,但我會收到通知欄。這可能不是所希望的,因爲那裏有可能繞過我的鎖屏的應用程序。 – edyim

+0

其中是項目DisableAllButton – pengwang

+0

@pengwang在mxplayer中disableAllButton.So它怎麼可能? – kyogs

0

校驗Android源代碼,View.java

public static final int STATUS_BAR_DISABLE_HOME = 0x00200000; 

STATUS_BAR_DISABLE_HOME標誌是從標準API隱藏。

,我們可以只使用0x00200000來設置系統UI的知名度,如:

View decorView = getWindow().getDecorView(); 
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility()|0x00200000); 

,但你應該添加

<uses-permission android:name="android.permission.STATUS_BAR" /> 

第一,這個權限僅授予系統應用