Android 锁定屏幕上的活动不适用于全屏
下面是我在onStart命令中的代码: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
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,如果对你有用,请接受答案。