我想爲Android平板電腦開發一個應用程序。阻止一切方式關閉Android應用程序
這款平板電腦將向公衆展示,他們可以觸摸它。
我會阻止一切方式關閉一個應用程序,除了要求輸入密碼的按鈕/首選項菜單。
但經過一些研究,我不是sur這是可能的我的意思是長按電源按鈕仍然工作,家庭buton也回來buton。所以問題一是這是可能的,如果它是如何?
我想爲Android平板電腦開發一個應用程序。阻止一切方式關閉Android應用程序
這款平板電腦將向公衆展示,他們可以觸摸它。
我會阻止一切方式關閉一個應用程序,除了要求輸入密碼的按鈕/首選項菜單。
但經過一些研究,我不是sur這是可能的我的意思是長按電源按鈕仍然工作,家庭buton也回來buton。所以問題一是這是可能的,如果它是如何?
我終於找到了一個辦法做到這一點
這個
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,同時提醒您注意可見
我已經嘗試過,但我能夠按主頁按鈕。 – 2013-06-07 10:58:54
什麼是您的設備?我也可以在我的銀河選項卡,但我已經將我的應用程序設置爲默認主頁,所以單擊主頁按鈕什麼也不做 – Jebik 2013-06-07 13:16:29
我使用三星銀河聯繫 – 2013-06-07 13:22:19
我敢肯定,如果沒有root用戶訪問設備,爲了避免巨魔應用程序控制您的Android設備,如果碰巧運行它,這是無法完成的。
我可以成爲root用戶,但在此應用安裝在很多設備上後,我不知道是否全部根本程序可以由客戶端... – Jebik 2013-05-02 08:38:11
是的,我搜索一些,但他們說不可能的一些,爲什麼我要求禁用所有如果有人知道這樣做 – Jebik 2013-05-02 08:37:00
只要你不能做到這一點,你不能阻止用戶衝壓Home Button
你可以阻擋背部按壓事件。
您可以按使用onAttachedToWindow()
HOME按鈕停止用戶,但這可能無法從工作Android 3.2的
首先你需要在你的應用程序從你的清單
<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();
}
運行後,您需要將您的應用程序設置爲家庭應用程序!
爲什麼突然回答不被接受? – 2013-06-06 07:05:47
我剛剛發現了一些可以讓它成爲可能的新功能,但是我根據自己的知識在發佈 – Jebik 2013-06-06 07:16:04
之前做了一些測試,如果您找到了方法,我們無法實現它,只需發佈代碼即可。 – 2013-06-06 07:30:58