【问题标题】:Disable escape from android app android 4.0+禁用从 android 应用程序 android 4.0+ 逃逸
【发布时间】:2014-10-19 19:01:06
【问题描述】:

我正在开发应启动一个应用程序的应用程序,而用户无法关闭或离开该应用程序。所以我需要禁用所有 3x 按钮(返回、主页、多任务)。禁用后退按钮很容易仅覆盖方法 onBackPressed()。但是我怎样才能禁用 Home 和 Multitask。我读到在 4.0+ android 中无法覆盖主页按钮,所以我该怎么做?我可以阻止多任务按钮,使用户无法从应用程序中逃脱吗?

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

【问题讨论】:

  • 我认为你不能这样做......
  • 您可以“控制”主页按钮,如果您将 ypp 设置为启动器,如下所示:<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>

标签: android


【解决方案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;
}

主页按钮

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

如果要处理 HOME 按钮,请实现主屏幕。您不能禁用主页按钮。

android:launchMode ="standard|singleTop|singleTask |singleInstance"

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

【讨论】:

    【解决方案2】:

    【讨论】:

    • home键是硬件键吧?那么如何隐藏或调暗主页按钮呢?
    • 这是个好主意,但它不起作用。您可以隐藏它,但是当用户显示键盘时,它们都会再次弹出。
    • @Raghunandan Ducktape 硬件按钮。 :
    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多