我想为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