当前位置: 代码迷 >> Android >> 在 Marshmallow 的锁屏顶部显示 VOIP 来电
  详细解决方案

在 Marshmallow 的锁屏顶部显示 VOIP 来电

热度:93   发布时间:2023-08-04 10:45:32.0

我正在开发 VOIP 呼叫应用程序。 当来电出现到 android 5.0 版时,来电显示在锁屏的顶部,但从 6.0 版开始,它显示为通知。 没有出现通话画面。

在做了一些研发之后,在 setContentVies() 之前添加了以下代码,

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

但仍然面临同样的问题。 任何人都可以建议我如何在锁定屏幕顶部显示 VOIP 来电。

在我的接收器上收到 VOIP 推送通知后,我启动了我的自定义来电活动,它覆盖了 onAttachedToWindow 方法,如下所示:

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}

这在 Android 4.4 到 Android 8.0 中对我来说很好用,到目前为止我还没有在其他操作系统版本中尝试过。 我能够在锁定和解锁屏幕上接收来自我的应用程序的传入自定义呼叫。