Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 锁定屏幕上的活动不适用于全屏_Android_Android Layout_Android Studio_Service - Fatal编程技术网

Android 锁定屏幕上的活动不适用于全屏

Android 锁定屏幕上的活动不适用于全屏,android,android-layout,android-studio,service,Android,Android Layout,Android Studio,Service,下面是我在onStart命令中的代码: WindowManager mWindowManager = (WindowManager)getSystemService(WINDOW_SERVICE); View mView = mInflater.inflate(R.layout.mylockscreenlayout, null); final WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(Vie

下面是我在onStart命令中的代码:

WindowManager mWindowManager = (WindowManager)getSystemService(WINDOW_SERVICE);
View mView = mInflater.inflate(R.layout.mylockscreenlayout, null);
final WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON ,
        PixelFormat.TRANSLUCENT);
mWindowManager.addView(mView, mLayoutParams);
并添加到清单中

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <service android:name=".LockOverlayService" 
             android:enabled="true"
             android:exported="false" 
             android:process=":overlayservice" />


在这种情况下,我无法通过覆盖整个手机屏幕来获得全屏锁屏布局,因此顶部状态栏是可见的。有人建议解决方案让我的活动全屏覆盖整个手机屏幕。

将系统可见性添加到主视图,然后将此mView添加到窗口管理器中,如:

WindowManager mWindowManager = (WindowManager)getSystemService(WINDOW_SERVICE);
        View mView = mInflater.inflate(R.layout.mylockscreenlayout, null);
        final WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON ,
                PixelFormat.TRANSLUCENT);
        mView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_VISIBLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        );
        mView.setVisibility(View.VISIBLE);
        mWindowManager.addView(mView, mLayoutParams);

检查一下这个,让我知道它是否工作正常?

OMG!这救了我一天过去三天我一直在挠头。。谢谢@ReadyAndroidWell,如果对你有用,请接受答案。