2012-05-23 68 views
2

我正在写一个基于sip的呼叫应用程序。当有来电时,相应的活动会被触发并显示在锁定屏幕下方。但用户不知道有关通话...锁定屏幕出现一段时间,屏幕关闭。即使通话仍在振铃......铃声在整个持续时间内都处于活动状态,但屏幕不显示不显示来电用户界面。我需要找到一种方法来显示适当的用户界面,并在整个来电期间保持屏幕...[android] [lock_screen]在来电SIP呼叫期间解锁待机屏幕

对于保持整个来电期间的屏幕上的部分我使用wakelocks .. 。但我无法摆脱锁屏...

我研究后发现,可以使用KeygaurdManagerWindowManager.LayoutParams与像FLAG_KEEP_SCREEN_ONFLAG_DISMISS_KEYGAURDFLAG_SHOW_WHEN_LOCKEDFLAG_TURN_SCREEN_ON适当的标志来解锁手机......然而,这些不要在我的情况下工作...我读了以下链接之一,当电话被密码/模式锁定时,无法解锁手机...这是为什么我无法显示我想要的用户界面的问题?来电时如何工作?请建议我一些解决方案

我提及的是

How can I unlock the screen programmatically in Android?

Unlock the Android Lockscreen

How do I prevent an Android device from going to sleep programmatically?

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

Force Screen On

的联系0

unlock screen while in call android

Android: Turn screen ON and notify user

How to launch an activity when lock screen is enabled?

Android activity over default lock screen

Android Create An Activity That Float Over Lockscreen

Unlock Android phone programmatically?

How to display Activity when the screen is locked?

How to unlock the device when my activity will be launched programmatically?

Android: How to turn screen on and off programmatically?

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

How to show incoming call notification in android application

How to display Activity when the screen is locked?

How to dismiss lock screen?

problem with KeyGuardManager

How unlock and lock screen programatically in android

How to unlock the device when my activity will be launched programmatically?

Get the Sip Incoming call id

How to notify SIP client when there is an incoming call on another phone

Can an activity receive an unordered broadcast(incoming call) intent before system's default receiver?

在此先感谢。

+0

您是否得到了解决方案?如果您的问题得到解决,请告诉我该怎么做对我非常有帮助。 – sri

+0

你找到了解决方案吗? – Vinay

回答

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" />

+0

嗨,keygaurd帮助处理键...我想处理解锁屏幕。请为处理待机屏幕提供一些答案 – user1412027

0

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

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