禁用android 4.x中的home按钮

禁用android 4.x中的home按钮,android,android-4.0-ice-cream-sandwich,android-homebutton,Android,Android 4.0 Ice Cream Sandwich,Android Homebutton,当我为孩子们开发应用程序时,我需要禁用home按钮,这样他们就不会在课堂上关闭应用程序。 有人知道如何在android 4.X中禁用它吗? (主页按钮是真实按钮,但不是屏幕上的虚拟按钮)您不能。 据了解,home按钮不会传递给应用程序,也不会由框架处理。您可以在根设备中执行此操作 这就是我为此所做的: package com.juanjovega.examples; import android.app.Activity; import android.os.Build; import and

当我为孩子们开发应用程序时,我需要禁用home按钮,这样他们就不会在课堂上关闭应用程序。 有人知道如何在android 4.X中禁用它吗? (主页按钮是真实按钮,但不是屏幕上的虚拟按钮)

您不能。

据了解,home按钮不会传递给应用程序,也不会由框架处理。

您可以在根设备中执行此操作

这就是我为此所做的:

package com.juanjovega.examples;

import android.app.Activity;
import android.os.Build;
import android.util.Log;

public class KioskActivity extends Activity {

    @Override
    public void onResume() {
        super.onResume();
        // Work around an Android 2.3 bug that sometimes causes us to become
        // invisible after turning the display off and on with the power button.
        setVisible(false);
        setVisible(true);
    }

    public static void setFullScreen(boolean fullscreen) {
        Process proc = null;

        String ProcID = "79"; // HONEYCOMB AND OLDER

        if (Build.VERSION.SDK_INT >= 14) {
            ProcID = "42"; // ICS AND NEWER
        }

        try {
            if (fullscreen) {
                proc = Runtime.getRuntime().exec("su -c service call activity " + ProcID + " s16 com.android.systemui");
                Log.d("kiosk", "Fullscreen mode ON");
            } else {
                Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");
                Log.d("kiosk", "Fullscreen mode OFF");
            }
        } catch (Exception ex) {
        }
        try {
            proc.waitFor();
        } catch (Exception ex) {
        }
    }

    // Override the default Back key action so that we don't lose control.
    @Override
    public void onBackPressed() {
        Log.d("kiosk", "onBackPressed");
    }

    public void clearHomeConfig() {
        Log.d("kiosk", "clearHomeConfig");

        getPackageManager().clearPackagePreferredActivities(getPackageName());
    }

    public void exitApp() {
        // Restore UI.
        setFullScreen(false);

        // Clear home config.
        getPackageManager().clearPackagePreferredActivities(getPackageName());

        // Exit
        System.exit(0);
    }
}

你有没有在stackoverflow上查看这篇文章的答案我有这个功能(在unity3D中,通过插件),但我没有在很多设备上测试过它,只有nexus平板电脑。该设备必须是根设备,否则您无法启动/停止服务,它会使应用程序全屏显示,而不仅仅是禁用主页按钮。这是我找到的最好的选择。