禁用从Android应用程序android 4.0+逃脱

时间:2013-04-12 12:34:38

标签: android

我正在开发应该启动一个应用程序的应用程序,用户无法关闭该应用程序或保留它。所以我需要禁用所有3x按钮(Back,Home,Multitask)。禁用后退按钮很容易只重写方法onBackPressed()。但是我如何禁用Home和Multitask。我读到在4.0+ android中无法覆盖Home按钮,所以我怎么能这样做?我可以阻止多任务按钮,以便用户无法逃避应用程序吗?

PS:此应用程序永远不会在Android Market上发布,因此解决方案可以是“规则”。

2 个答案:

答案 0 :(得分:1)

返回按钮

http://developer.android.com/guide/components/tasks-and-back-stack.html

假设您在活动A中导航到B然后导航到C.在活动C中按回按钮,活动C从堆栈中弹出,销毁并显示之前的活动B显示

假设您希望从C导航到A,那么您可以覆盖后退按钮

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}

return super.onKeyDown(keyCode, event);
}

public void onBackPressed() {
Intent myIntent = new Intent(C.this, A.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // clear back stack 
startActivity(myIntent); 
finish(); 
return;
}

为homeButton

除非您将应用设置为主屏幕,否则无法拦截Android上的主页按钮。这是出于安全原因,因此恶意应用程序无法通过覆盖可以退出的所有按钮来接管您的设备。主页按钮是一种可以离开任何应用程序的确定镜头方式。

如果要处理HOME按钮,请执行主屏幕。您无法禁用主页按钮。

android:launchMode =“standard | singleTop | singleTask | singleInstance”

检查活动启动模式@ http://developer.android.com/guide/topics/manifest/activity-element.html#lmode以获取singleInstance。设备一次只能容纳一个活动实例 - 只有一个这样的任务。

答案 1 :(得分:0)