How to disable home button in Android like lock screen apps do?

后端 未结 6 1746
后悔当初
后悔当初 2020-12-24 14:43

I know this question is asked many times but I found that none of the solution is working. I tried the code given below...

   protected void onPause() {
            


        
6条回答
  •  离开以前
    2020-12-24 15:00

    source - https://github.com/shaobin0604/Android-HomeKey-Locker

    //Copy this class
    public class HomeKeyLocker {
        private OverlayDialog mOverlayDialog;
        public void lock(Activity activity) {
            if (mOverlayDialog == null) {
                mOverlayDialog = new OverlayDialog(activity);
                mOverlayDialog.show();
            }
        }
        public void unlock() {
            if (mOverlayDialog != null) {
                mOverlayDialog.dismiss();
                mOverlayDialog = null;
            }
        }
        private static class OverlayDialog extends AlertDialog {
    
            public OverlayDialog(Activity activity) {
                super(activity, R.style.OverlayDialog);
                WindowManager.LayoutParams params = getWindow().getAttributes();
                params.type =  WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
                params.dimAmount = 0.0F; // transparent
                params.width = 0;
                params.height = 0;
                params.gravity = Gravity.BOTTOM;
                getWindow().setAttributes(params);
                getWindow().setFlags( WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |  WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, 0xffffff);
                setOwnerActivity(activity);
                setCancelable(false);
            }
    
            public final boolean dispatchTouchEvent(MotionEvent motionevent) {
                return true;
            }
    
            protected final void onCreate(Bundle bundle) {
                super.onCreate(bundle);
                FrameLayout framelayout = new FrameLayout(getContext());
                framelayout.setBackgroundColor(0);
                setContentView(framelayout);
            }
        }
    }
    
    //Paste this in your activity
    mHomeKeyLocker = new HomeKeyLocker();
    mHomeKeyLocker.lock(this);
    

提交回复
热议问题