2011-04-13 74 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,則可以使用我們自己的對話框和屏幕。