Android中的全屏服务

Android中的全屏服务,android,service,android-service,layoutparams,android-windowmanager,Android,Service,Android Service,Layoutparams,Android Windowmanager,我做了一个服务,在每个活动的顶部都放上黑色矩形,屏幕变黑,除了状态/通知栏和导航栏。我的目标是隐藏一切。如何使这个黑色矩形全屏显示?我尝试过使用FLAG\u全屏和FLAG\u布局(在屏幕中),但没有成功。我读过关于禁用TypeGuard的文章,但即使这样也不起作用。提前谢谢 这是我的密码 WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); ImageView black

我做了一个服务,在每个活动的顶部都放上黑色矩形,屏幕变黑,除了状态/通知栏和导航栏。我的目标是隐藏一切。如何使这个黑色矩形全屏显示?我尝试过使用
FLAG\u全屏
FLAG\u布局(在屏幕
中),但没有成功。我读过关于禁用TypeGuard的文章,但即使这样也不起作用。提前谢谢

这是我的密码

    WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

    ImageView black = new ImageView(this);
    black.setImageResource(R.drawable.black);

    LinearLayout layout = new LinearLayout(this);
    layout.addView(black);

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
            PixelFormat.TRANSLUCENT);

    params.gravity = Gravity.TOP | Gravity.LEFT;
    params.x = 0;
    params.y = 0;

    windowManager.addView(layout, params);
试试这个:

assert getSupportActionBar() != null;
getSupportActionBar().hide();   
mContentView = findViewById(R.id.fullscreen_content);
mContentView.setSystemUiVisibility(View.GONE | View.SYSTEM_UI_FLAG_FULLSCREEN);
其中
全屏内容
是父布局。

我解决了这个程序

    if (null == mInflater) {
        mInflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }if (mLockscreenView == null) mLockscreenView = mInflater.inflate(R.layout.view_locokscreen, null);

mLockscreenView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
            mWindowManager.addView(mLockscreenView, mParams);
            final Handler handler = new Handler();
            mLockscreenView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
                @Override
                public void onSystemUiVisibilityChange(int visibility) {
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            mLockscreenView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
                        }
                    },2000);
                }
            });

我只需添加一行就解决了这个问题

layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);

这不能应用于服务
getSupportActionBar()
是一种可以在扩展活动的类中使用的方法。您解决了问题了吗?如何解决?感谢您的回答,但这不起作用。服务中的视图不会在导航键和状态栏上绘制。