4

我正在编写一个sip基于调用的应用程序。当有来电时,相应的活动将被触发并显示在锁定屏幕下方。但是用户不知道来电...锁定屏幕出现一段时间并且屏幕关闭..即使电话仍在响铃...铃声在整个持续时间内都处于活动状态但屏幕没有'不显示来电 UI。我需要找到一种方法来显示适当的 UI 并在整个来电期间保持屏幕开启......

对于在来电期间保持屏幕开启的部分,我正在使用唤醒锁......但我无法摆脱锁定屏幕......

我研究并发现可以使用KeygaurdManager或与WindowManager.LayoutParams适当的标志(如FLAG_KEEP_SCREEN_ON,FLAG_DISMISS_KEYGAURD和手机被密码/模式锁定...这是我无法显示我想要的用户界面的问题吗?它如何处理来电?请给我一些解决方案FLAG_SHOW_WHEN_LOCKEDFLAG_TURN_SCREEN_ON

我提到的链接是

如何在 Android 中以编程方式解锁屏幕?

解锁安卓锁屏

如何防止 Android 设备以编程方式进入睡眠状态?

https://stackoverflow.com/questions/7006894/how-to-unlack-the-screen-and-power-on-when-my-application-is-in-background-when

强制屏幕开启

通话时解锁屏幕android

Android:打开屏幕并通知用户

启用锁屏时如何启动活动?

默认锁定屏幕上的 Android 活动

Android 创建一个浮动在锁屏上的 Activity

以编程方式解锁 Android 手机?

屏幕锁定时如何显示Activity?

当我的活动将以编程方式启动时如何解锁设备?

Android:如何以编程方式打开和关闭屏幕?

https://stackoverflow.com/questions/10590918/how-to-display-dialog-when-user-get-incoming-call-on-default-call-screen-in-andr

如何在android应用程序中显示来电通知

屏幕锁定时如何显示Activity?

如何解除锁定屏幕?

KeyGuardManager 的问题

如何在android中以编程方式解锁和锁定屏幕

当我的活动将以编程方式启动时如何解锁设备?

获取 Sip 来电 id

当另一部电话有来电时如何通知 SIP 客户端

活动能否在系统的默认接收器之前接收无序广播(来电)意图?

提前致谢。

4

2 回答 2

1

对我来说,以下代码效果很好。

@Override
protected void onCreate() {
    KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    keyguard = km.newKeyguardLock("MyApp");
}
//when we need to unlock screen
@Override
protected void onResume() {
    keyguard.disableKeyguard();
}
@Override
protected void onPause() {
    keyguard.enableKeyguard();
}

记得添加权限

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

于 2012-05-23T09:36:07.480 回答
0

FLAG_SHOW_WHEN_LOCKED 在大多数手机上都适用于我。活动必须是不透明的(不是对话框)。您可能还需要 FLAG_TURN_SCREEN_ON 和 FLAG_KEEP_SCREEN_ON

但是,它目前不适用于运行 4.0.3 的 Galaxy Note。还不知道为什么...

于 2012-06-12T12:36:28.420 回答