首先对于迟到的回答感到抱歉。第一件事是程序员真的不阻止主页按钮。他们仅使用技巧来隐藏锁定屏幕后面的主页按钮过程。
你怎么能这样做?简单。只需使用您的锁屏窗口作为窗口管理器屏幕,这就是为什么在按下回家后您的手机屏幕不会最小化。这是大多数成功锁定应用程序中使用的小技巧。
还有一件事是如何重叠手机窗口顶部系统状态栏。
为此您可以像这样使用代码,并且可以根据需要进行修改。
manager = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE));
localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|
//WindowManager.LayoutParams.FLAG_LAYOUT_ATTACHED_IN_DECOR |
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN |
// this is to enable the notification to recieve touch events
//WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN |
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH |
// Draws over status bar
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
//localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
localLayoutParams.height = (int) (50 * getResources().getDisplayMetrics().scaledDensity);
localLayoutParams.format = PixelFormat.TRANSPARENT;
view = new customViewGroup(this);
manager.addView(view, localLayoutParams);
,创造customeVIewGroup类这样的..
public class customViewGroup extends ViewGroup {
public customViewGroup(Context context) {
super(context);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
Log.v("customViewGroup", "**********Intercepted");
return true;
}
}
的桌面应用方法不起作用?当你按下主页按钮android调用启动器显示,那应该不会改变 – Nanoc
你确定,发射器方法在棒棒糖中工作吗? – user2625151
您确定您已将您的应用设置为默认启动器吗? – m0skit0