2013-05-02 91 views
7

我想爲Android平板電腦開發一個應用程序。阻止一切方式關閉Android應用程序

這款平板電腦將向公衆展示,他們可以觸摸它。

我會阻止一切方式關閉一個應用程序,除了要求輸入密碼的按鈕/首選項菜單。

但經過一些研究,我不是sur這是可能的我的意思是長按電源按鈕仍然工作,家庭buton也回來buton。所以問題一是這是可能的,如果它是如何?

+0

爲什麼突然回答不被接受? – 2013-06-06 07:05:47

+0

我剛剛發現了一些可以讓它成爲可能的新功能,但是我根據自己的知識在發佈 – Jebik 2013-06-06 07:16:04

+0

之前做了一些測試,如果您找到了方法,我們無法實現它,只需發佈​​代碼即可。 – 2013-06-06 07:30:58

回答

1

我終於找到了一個辦法做到這一點

這個

getWindow沒有DOC ().getDecorView()setSystemUiVisibility(8)。

但是8是一個隱藏的標誌,完全禁用系統用戶界面,這個你的應用程序是permanly在全屏幕(要小心,如果你使用這個保持關閉應用程序的方式) 8標誌完整無證,告訴你,因爲與版本這項工作我開發的4.0和4.1它都適用於兩個。 不知道爲3.0,但沒有任何設備來嘗試它。

而且在別忘android.permission.EXPAND_STATUS_BAR您的清單

這是不完美的,因爲如果你使用一些警報對話systemUi成爲可見的,但如果你不使用任何你不能退出 長按電源進行powerpopup誰做的系統UI可見太

但是你可以殺死它快速機智以下方法

public void onWindowFocusChanged(boolean hasFocus) { 
super.onWindowFocusChanged(hasFocus); 
if(!hasFocus) { 
    Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); 
    sendBroadcast(closeDialog); 
    } 
} 

如果你這樣做,你不能再離開你的應用程序(或我已經忘了一種方法來克隆是嗎?),所以請記住之前進行類似SureLock(應用avaible在Play商店中),3觸碰2周的推出誰問了一通退出其

希望這可以幫助一個活動,是完整

和最後問題仍未解決 我們可以定製一個警報視圖來調用setSystemUiVisibility(8);因爲如果電池作一個警告,或者如果你覺得你真的需要一個警告,這將顯示系統UI,同時提醒您注意可見

+0

我已經嘗試過,但我能夠按主頁按鈕。 – 2013-06-07 10:58:54

+0

什麼是您的設備?我也可以在我的銀河選項卡,但我已經將我的應用程序設置爲默認主頁,所以單擊主頁按鈕什麼也不做 – Jebik 2013-06-07 13:16:29

+0

我使用三星銀河聯繫 – 2013-06-07 13:22:19

2

我敢肯定,如果沒有root用戶訪問設備,爲了避免巨魔應用程序控制您的Android設備,如果碰巧運行它,這是無法完成的。

+0

我可以成爲root用戶,但在此應用安裝在很多設備上後,我不知道是否全部根本程序可以由客戶端... – Jebik 2013-05-02 08:38:11

3

,你可以找到所有的答案中已經問過的問題計算器

Home Button

Return Button

Power Button

+0

是的,我搜索一些,但他們說不可能的一些,爲什麼我要求禁用所有如果有人知道這樣做 – Jebik 2013-05-02 08:37:00

1

只要你不能做到這一點,你不能阻止用戶衝壓Home Button

你可以阻擋背部按壓事件。

您可以按使用onAttachedToWindow() HOME按鈕停止用戶,但這可能無法從工作Android 3.2的

0

首先你需要在你的應用程序從你的清單

<activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.settings.SETTINGS" /> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.HOME" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 

      </intent-filter> 
    </activity> 
添加爲家

附加標誌之後

getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY); //(dont forget to add flag before `setContentView`) 

禁用設備鎖定

private void disableLock() { 

     KeyguardManager keyguardManager = (KeyguardManager) getSystemService(MainActivity.KEYGUARD_SERVICE); 
     KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
     lock.disableKeyguard(); 
    } 

禁用家長點擊

@Override 
    protected void onUserLeaveHint() { 
     startActivity(new Intent(MainActivity.this,MainActivity.class)); 
     finish(); 
     super.onUserLeaveHint(); 
    } 

運行後,您需要將您的應用程序設置爲家庭應用程序!

相關問題