Articles of android windowmanager

Android Crash,java.lang.IllegalArgumentException:添加窗口后无法更改窗口types

我向市场上传了一个Android应用程序,并且由于某种原因,用户收到此错误。 java.lang.IllegalArgumentException: Window type can not be changed after the window is added. at android.os.Parcel.readException(Parcel.java:1331) at android.os.Parcel.readException(Parcel.java:1281) at android.view.IWindowSession$Stub$Proxy.relayout(IWindowSession.java:664) at android.view.ViewRootImpl.relayoutWindow(ViewRootImpl.java:3594) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1193) at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2450) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4444) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) at dalvik.system.NativeStart.main(Native Method) 我很确定我从不使用其他post中引用的WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG 。 但是,我有一个窗口,可以在WindowManager.LayoutParams.TYPE_PHONE和WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY之间WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY 。 这似乎可能是错误。 我宁愿不改变它,因为它需要我有两个窗口而不是一个。 提前致谢!

在Android中用户检测锁定屏幕密码不正确

我正在构建一个安全应用程序,我需要知道用户是否提供了错误的密码。 假设用户手机被模式锁定系统锁定,不幸的是用户忘记了模式密码。当用户5次错误模式时,将被罚30秒。 我需要抓住那个点球赛事。 在我的应用程序中,我甚至需要做一些任务(为了用户的安全)。 请帮帮我,

这4行java代码在android应用程序中意味着什么?

在我的java应用程序中,我有这个代码 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); super.onAttachedToWindow(); } 当我为Android 2.3(10级)构建它时,它编译并正常工作。 但是当我为Android 4.0(15级)构建它时,它会编译并让我在运行时崩溃并跟随错误 07-16 14:00:03.090: E/AndroidRuntime(29487): FATAL EXCEPTION: main 07-16 14:00:03.090: E/AndroidRuntime(29487): java.lang.IllegalArgumentException: Window type can not be changed after the window is added. 当我评论这一行,并建立它工作正常,没有问题.. //this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); 所以我不明白为什么这个幸福和这个代码意味着什么? 编辑:这里有一些参考 当我在手机上运行应用程序时。版本是android 4.0.3 在android上的小孩安全app

isAttachedToWindow()替代API级别<19

我想在我的片段中使用调用videoView.isAttachedToWindow()来validationvideoview是否已初始化正常并且可以调用。 但是这个调用需要api级别19(当前min是14)。 API级别14及以上的videoView.isAttachedToWindow()的最佳替代方法是什么? 编辑:我的videovideo播放通过Android盒子的HDMI输入流式传输的video。 在某些具有OS 4.0.4的硬件中,video有时会出现抖动。

关于在三星Galaxy S上调度’Down’键的“Window Manager Crash”

我正在使用Instrumentation在各种Android设备上运行我的unit testing。 Testcases在仿真器和除Samsung Galaxy S之外的所有设备上都能正常工作。 在三星Galaxy S上,使用检测注入大约30个关键事件后,它会显示一个Window Manager崩溃,这是完整的崩溃日志: D/dalvikvm(11862): GC_EXPLICIT freed 6800 objects / 374040 bytes in 54ms D/dalvikvm(11862): GC_EXPLICIT freed 780 objects / 71856 bytes in 39ms W/dalvikvm(11862): threadid=9: thread exiting with uncaught exception (group=0x4001d7d0) E/WindowManager( 2472): Window Manager Crash E/WindowManager( 2472): java.lang.NullPointerException E/WindowManager( 2472): at com.android.server.WindowManagerService$KeyWaiter.waitForNextEventTarget(WindowManagerService.java:5844) E/WindowManager( 2472): at com.android.server.WindowManagerService.injectKeyEvent(WindowManagerService.java:5565) E/WindowManager( 2472): at […]

在Android 4.2.2中将screenBrightness属性设置为0.0f不再关闭屏幕?

这是相关的代码: WindowManager.LayoutParams windowParams = getWindow().getAttributes(); windowParams.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; windowParams.screenBrightness = 0.0f; getWindow().setAttributes(windowParams); 我也尝试将screenBrightness设置为0(整数而不是浮点数),以及我在Stack Overflow答案中find的以下行: this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 没有骰子。 屏幕变暗,但没有关闭。 以上代码适用于以前的Android版本。 我只是在模拟器中测试它以确保。 是否实施了一种控制屏幕的新方法?

在Android 4.4(KitKat)中叠加全屏透明图层

我想在整个屏幕上叠加透明视图,包括Android 4.4中最底部的导航栏。 我可以在Android 4.3中通过将窗口管理器LayoutParams定义为TYPE_SYSTEM_OVERLAY来实现,但是当我使用相同的定义时,布局现在被推到导航栏后面。 如果由于KitKat最近的更新,请你告诉我吗? 或者如果有人有解决方案,请与我分享。 问候

在Android KitKat上,叠加视图是否可以填满整个屏幕?

使用WindowManager.addView和WindowManager.LayoutParams ,可以使用TYPE_SYSTEM_OVERLAY将视图添加到屏幕,然后将在所有其他应用程序之上绘制。 这可以用于各种效果,例如着色屏幕或绘制始终可见的视图。 但是,我还没有find一种方法让这个叠加层绘制在软键后面绘制的背景。 有了在KitKat支持的区域中绘制的新选项,我想我可以尝试FLAG_TRANSLUCENT_NAVIGATION和FLAG_TRANSLUCENT_STATUS ,但背景仍然是不受限制的。 FLAG_LAYOUT_IN_SCREEN和FLAG_FULLSCREEN似乎没有帮助。 似乎影响软键背景的唯一方法是使用FLAG_DIM_BEHIND并设置.dimAmount,但这只能用于调暗软键背景。 是否有可能在活动中实际绘制某些内容? 如果是这样,怎么办呢?

手机锁定时启动外部活动

我希望能够在设备密码锁定时启动不属于我的应用程序的活动。 如果可能的话,我怎么能这样做呢? 注意:我很清楚getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 在我的活动的onCreate内。 但是,这不起作用,因为我没有开始自己的活动,而是在我的应用程序之外的第三方活动。

在使用FLAG_SHOW_WHEN_LOCKED启动Activity之前,会短暂显示Keyguard

我在onAttachedToWindow()使用以下标志来显示我在键盘onAttachedToWindow() Activity : FLAG_DISMISS_KEYGUARD | FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON 这很好,但是,当屏幕关闭时从后台服务启动我的活动时, 键盘保护程序有时会在我的应用程序显示之前显示1-2秒 。 这种情况尤其发生在较慢的手机上(或在低内存情况下)。 我发现这很奇怪,因为我的理解是在 onCreate() / onResume() 之后调用onAttachedToWindow() ,所以当设置上述标志时,所有“繁重的工作”应该已经完成​​了吗? 有没有办法只在完成设置后显示我的Activity ?