2011-04-13 73 views
3

我们正在开发来电显示应用和到现在,我们能够与我们的CALL_STATE_RINGING以下http://developer.android.com/reference/android/telephony/TelephonyManager.htmlAndroid上的来电显示 - 如何抑制/延迟默认来电屏幕?

但是自己的布局/来电显示屏幕取代默认的呼入电话屏幕,我们面临的问题是:
一)当电话接听来电时,默认来电屏幕优先并立即显示
b)1-2秒后,我们的来电显示屏出现。 我们希望完全避免/抑制/延迟默认来电屏幕,以便用户体验更好。

+0

你是怎么做到的?我在下面使用了你的代码,但是我仍然可以看到默认的调用者屏幕,然后在我之后出现。 – MSaudi 2013-11-20 17:43:51

回答

5

我还没有找到一种方法来完全禁止默认屏幕。然而,startActivity之前的较小延迟(500毫秒)对我有用。 此外,我有以下标志到我的意图开始我的自定义活动。我的代码如下所示:

if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) 
     { 
      SystemClock.sleep(500 * 1); 
      Log.d("MPR", "Its Ringing [" + number + "]"); 
      Intent startMain = new Intent(); 
      startMain.setClassName("com.foo.TIC", "com.foo.TIC.TestInComing"); 
      startMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION); 
      startMain.putExtra("PNO", number); 
      context.startActivity(startMain); 
     } 
+2

它对我来说很棒... – Manjunath 2012-05-10 10:39:38

0

如果我们使用Broadcast Recieiver,则可以使用我们自己的对话框和屏幕。