Home button disable

半城伤御伤魂 提交于 2019-11-27 18:53:21

Just use a different theme for your activity. In your Manifest.xml, set the theme attribute of your activity to android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

luongnv89

you can disable power button! you can try this: Project: DisableAllButton

  • Disable Search, Back key: in "DisableAllButton.java"

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return false;
    }
    
  • Disable Home key: in "DisableAllKey.java"

    @Override
    public void onAttachedToWindow() {
        // TODO Auto-generated method stub
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow();
    }
    
  • Disable Powerkey: in "DisableAllKey.java"

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
    KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
    lock.disableKeyguard();
    
  • in AndroidManifest

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
    
  • and set fullscreen in AndroidManifest

    <application android:icon="@drawable/icon" android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    

done! :D.

check Android source code, View.java

public static final int STATUS_BAR_DISABLE_HOME = 0x00200000;

STATUS_BAR_DISABLE_HOME flag is hide from the standard api.

we can just use 0x00200000 to set system ui visibility ,as:

View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility()|0x00200000);

but you should add

<uses-permission android:name="android.permission.STATUS_BAR" />

first, this permission only granted to system apps

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!