【问题标题】:how to disable home button in android?如何禁用android中的主页按钮?
【发布时间】:2013-06-15 13:18:43
【问题描述】:

我想在我的应用程序运行时禁用 android 设备 home button

我尝试了以下代码,但没有帮助:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_HOME)) {
            Toast.makeText(this, "You pressed the home button!",
                    Toast.LENGTH_LONG).show();
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }

     @Override
     protected void onNewIntent(Intent intent) {
     super.onNewIntent(intent);
     if (Intent.ACTION_MAIN.equals(intent.getAction())) {
     Log.i("MyLauncher", "onNewIntent: HOME Key");

     }
     }

【问题讨论】:

标签: android


【解决方案1】:

如果符合您的要求,我认为这可以以另一种方式完成。通过将您的活动创建为家庭活动。如果您想禁用主页按钮并在按下主页按钮时将您的自定义应用程序活动显示为启动器。只需在清单中为您想要启动器的活动添加这些行。

<activity
            android:name="com.example.TempActivity"
            android:clearTaskOnLaunch="true"
            android:excludeFromRecents="true"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:stateNotNeeded="true" >
             <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>
</activity>

添加并运行您的应用程序后。如果用户按下主页按钮,Android 会询问您想要哪个启动器作为主页。然后你必须选择你的应用程序启动器,而不仅仅是一次。

如果您想完全禁用用户,以便他无法移动到另一个屏幕,然后使用 NoTitlebar 将主题设置为全屏。

【讨论】:

  • ... 而您的应用程序会在每次用户按下主页按钮时启动... 通常不是您想要存档的内容
【解决方案2】:

您可以使用Android-HomeKey-Locker禁用HOME KEY和其他系统键(如BACK KEY和MENU KEY)

注意

似乎该解决方案仅适用于具有硬 Home 键的设备

希望这对您的申请有所帮助。谢谢。

【讨论】:

  • @menu_on_top 克隆 repo,将 HomeLockerLib 添加到您的应用项目的依赖项中
  • 嘿,非常感谢您的解决方案,但是软 Home 键也可以吗?如果可能,请提出一些想法。
  • 我从 Playstore 安装了一个“Button Locker”应用程序。不知道是不是你说的那个app。有用。它锁定了我手机有缺陷的主页按钮。但是该应用程序是无用的,因为它具有使其无法使用的副作用。当我想输入 Whatsapp 时,它会禁用不再出现的软键盘。
【解决方案3】:

您不能禁用主页按钮。

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

主页按钮是导航到主屏幕的一种快捷方式。

如果要处理 HOME 按钮,请实现主屏幕。

Not able disable Home button on specific android devices

通过commonsware查看答案

【讨论】:

  • 重复什么?可能与另一个问题重复。我不确定
  • :D 我在问这个问题(那里的问题太多了)。不是说你的答案是重复的:)
  • SO 上已经存在相同主题的重复问题。不要使用从针对 SO 上的同一主题建议的另一个答案复制的一些链接来增加答案的数量。
  • @ManishAndroid 我不会从链接中复制它。我回答了这个问题。如果您认为该问题重复,请投票关闭该问题。
  • @PankajKumar 没问题,我不会受伤,只需将问题投票为重复项即可关闭。不用大惊小怪
【解决方案4】:

您可以使用以下方法禁用 android 中的 Home 键:

@Override
public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

【讨论】:

  • 这没有任何作用.. 究竟应该发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多