Android 使用WindowManager的类型\系统\警报时显示分辨率无效
我正在使用Android 使用WindowManager的类型\系统\警报时显示分辨率无效,android,Android,我正在使用WindowManager.LayoutParams类,使用键入系统警报来获取最重要的活动。除了显示分辨率被放大外,一切正常,因此我无法看到版面的全部内容 这是截图 (非常抱歉,由于我是StackOverflow新手,声誉不高,所以没有直接上传图像) 我的WindowManager.LayoutParams代码为 final WindowManager.LayoutParams params = new WindowManager.LayoutParams( Wind
WindowManager.LayoutParams
类,使用键入系统警报
来获取最重要的活动。除了显示分辨率被放大外,一切正常,因此我无法看到版面的全部内容
这是截图
(非常抱歉,由于我是StackOverflow新手,声誉不高,所以没有直接上传图像)
我的WindowManager.LayoutParams代码为
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
wm = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
mTopView = (ViewGroup) getLayoutInflater().inflate(R.layout.block_device, null);
getWindow().setAttributes(params);
wm.addView(mTopView, params);
我还尝试了WRAP\u CONTENT
而不是FLAG\u FULLSCREEN
,但它显示了一个IllegalStateException
,即ActionBarView
只能与MatchParent
一起使用
在5.1中,作为额外安全系统警报类对话框的一部分,我可以尝试的任何修复都是不推荐的,该对话框写在另一个应用程序is UI的顶部。在我的应用程序中,我有一个活动,其中包含system_alert(系统警报)对话框,它一直工作到5.0,但在5.1中不工作(在
android.permission.system_alert_(系统警报)窗口
permission(权限)之后也不工作)。我在下面的链接中引用了androidxref
如果应用程序试图在其他应用程序的窗口上写入,他们将检查并抛出异常
最后,我们不得不重新设计应用程序,以避免使用系统警报类对话框
有关示例代码,请参阅以下代码段
String message = getString(R.string.progress_message);
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setTitle(R.string.progress_title_message);
mProgressDialog.setMessage(message);
mProgressDialog.setProgressStyle(mProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setProgress(0);
mProgressDialog.setCancelable(false);
mProgressDialog.setMax(100);
mProgressDialog.show();`