1

我正在开发 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 来电。

4

1 回答 1

3

在我的接收器上收到 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 中都很好用,到目前为止我还没有在其他操作系统版本中尝试过。我能够在锁定和解锁屏幕上接收来自我的应用程序的传入自定义呼叫。

于 2017-12-30T18:45:13.763 回答