如何在android中禁用主页按钮?

lov*_*ght 3 android

我希望home button在我的应用程序运行时禁用Android设备.

我试过以下代码,但它没有帮助:

@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");

     }
     }
Run Code Online (Sandbox Code Playgroud)

dro*_*idd 11

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

如果你想完全禁用用户,那么他就无法移动到另一个屏幕,然后使用NoTitlebar将主题设置为全屏.


sha*_*604 8

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

注意

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

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


Rag*_*dan 2

您无法禁用主页按钮。

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

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

如果您想使用 HOME 按钮,请实现主屏幕。

无法禁用特定 Android 设备上的主页按钮

通过commonsware查看答案