android - FLAG_SHOW_WHEN_LOCKED 在 4.4.2 的最新版本中不起作用

标签 android android-4.4-kitkat lockscreen

我的应用程序的主窗口设置了 FLAG_SHOW_WHEN_LOCKED 和 FLAG_DISMISS_KEYGUARD 窗口标志,以在通常的 Android 锁定屏幕前显示应用程序窗口。具体代码如下

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

自从 ICS 在我的所有设备上以来,它一直运行良好。但最近我收到了两份来自最终用户的报告,称该应用程序不再出现在锁定屏幕的顶部。我们最终确定第一个用户正在运行 Cyanogenmod,并让他向他们提出支持问题。但是第二个用户正在运行一个绝对库存的操作系统。让事情变得更有趣的是,他报告说当他第一次安装 4.4 系统更新时它工作正常。但是安装最新的系统更新破坏了一切。从那时起,如果锁定屏幕,我们的应用程序不再显示在顶部,但一旦屏幕解锁,它就会立即弹出。

技术细节...
机型编号:SM-G900P
安卓版本:4.4.2
基带版本:G900PVPU1ANE5
内核版本:3.4.0-1750661
dpi@SWDD6020 #1
2014 年 5 月 30 日星期五 21:23:48
内部版本号:KOT49H.G900PVPU1ANE5
Android 状态的 SE
执行
SEPF_SM-G900P_4.4.2_0016
2014 年 5 月 30 日星期五 21:23:28
安全软件版本
MDF v1.0 第 3 版
VPN v1.4 第 1 版

我还没有运行 4.4 的手机。我在最新最好的 4.4 模拟器上运行该应用程序,它在锁定屏幕上弹出时没有任何问题。

还有其他人听说过这方面的报道吗?对我们接下来可以做什么有什么建议吗?

最佳答案

我在寻找为什么我创建的通知没有显示在锁定屏幕前的答案时发现了这个问题。该代码适用于旧的 2.3 android 设备,但不适用于新的 4.4.4 nexus 5。

在我的案例中,它是由以下原因引起的:

<item name="android:windowIsFloating">true</item>

当我将其更改为 false 时,它​​已修复。不知道为什么会有这个要求,如果 4.3 和更低版本不需要这个(我只有旧的 2.3 设备和 4.4.4 nexus 5 来测试东西)。

-- 编辑 另请参阅此问题,似乎还有另一种解决方法 Android's floating windows coupled with FLAG_SHOW_WHEN_LOCKED fails

关于android - FLAG_SHOW_WHEN_LOCKED 在 4.4.2 的最新版本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24644650/

相关文章:

安卓锁屏

安卓 4.2 : Normal widget to lockscreen widget

android - 在我的 Android 应用程序中接收来电通知

java - 将整数表示为方差最小的整数之和

android - 在 android 4.3+ 的 textview 中缺少一些字母和数字

android - Android KitKat 上的对话框似乎被剪掉了

ios - 长时间不活动后,iPhone 会被发送到主屏幕吗?

android - 使用 2 个 soundpool 会导致内存泄漏吗?

android - DatabaseReference#push() 方法在不同位置有何不同?

android - 即使使用 777,权限也被拒绝