我有一项服务,当用户摇动他/她的手机时,会显示一个全屏覆盖窗口。我使用此代码完成了这项工作:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mOverlayView = inflater.inflate(R.layout.overlay, null);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_DIM_BEHIND | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_FULLSCREEN,
PixelFormat.TRANSLUCENT);
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(mOverlayView, params);
它填满了整个屏幕,除了导航栏。有没有办法可以在我的服务中隐藏显示叠加层的导航?
请注意,我的应用在后台运行。用户可能正在前台运行任何其他应用程序,即使我的主要活动未运行,我也想显示我的全屏覆盖窗口。
我在网上找到的所有例子似乎都需要运行一个活动......
感谢您的帮助!