2011-10-24 137 views
0

我有我的自定義應用程序在手機上運行,​​它應該全天候運行,所以有一個要求限制用戶點擊時啓動Android手機主屏幕如果對上的主頁按鈕它不應該定位到手機的主屏幕上的電話和用戶點擊運行我的應用程序在手機的Home鍵指。 它應該始終在手機上顯示我的自定義應用程序。限制用戶點擊Android手機主頁按鈕時的主屏幕啓動

因此,誰能幫助我實現這個功能?請分享一些示例代碼,以便對我有所幫助。

問候, 皮克斯

+1

只是我認爲,這不能做的 –

+1

可能重複(HTTP [是否有可能建立一個Android應用程序,使手機運行在排序kiosk模式的?] //sketchoverflow.com/questions/5881373/is-it-possible-to-create-an-android-app-to-make-the-phone-run-in-sort-of-a-kiosk) – CommonsWare

回答

1

試試這個:

@Override 
public void onAttachedToWindow() { 
    // TODO Auto-generated method stub 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
    super.onAttachedToWindow(); 
} 
@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (event.getKeyCode()) { 
     case KeyEvent.KEYCODE_BACK: 
      return true; 
     case KeyEvent.KEYCODE_HOME: 
      return true; 
     } 
    } else if (event.getAction() == KeyEvent.ACTION_UP) { 
     switch (event.getKeyCode()) { 
     case KeyEvent.KEYCODE_BACK: 
      if (!event.isCanceled()) { 
       // Do BACK behavior. 
      } 
      return true; 
     case KeyEvent.KEYCODE_HOME: 
      if (!event.isCanceled()) { 
       // Do HOME behavior. 
      } 
      return true; 
     default: 
      return true; 


     } 
    } 

    return super.dispatchKeyEvent(event); 
} 
+0

看起來不錯,但並未涵蓋一些奇怪的情況,例如按住電源按鈕以調出關機彈出窗口,然後打到家中。您也可以覆蓋電源按鈕,但是每次您想關閉設備時都必須拉出電池。 – ImR

2

我們不能覆蓋home鍵的功能。 Home鍵被保留用於OS

2

如果你真的想這樣做,你可以做一個自定義啓動(主屏幕)。入門的一些技巧概述here,但它不是一個短期和簡單的調整。

這也需要您的用戶設置他們發射到您的自定義啓動,然後使他們的默認,等等。這真的只能是合理的,如果你有以上設備100%的配置控制。

如果你沒有走這條路,但是,你能夠處理的每家的情況下被擠壓,以及具有啓動您的24/7應用程式的簡單掛鉤。

0

如果要鎖定主頁按鈕。你可以在下面的代碼的幫助下做到這一點。但它只適用於單一活動。

@覆蓋

public void onAttachedToWindow() 

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