【问题标题】:Caller ID on Android - How to Suppress/Delay Default incoming call screen?Android 上的来电显示 - 如何抑制/延迟默认来电屏幕?
【发布时间】:2011-04-13 18:34:37
【问题描述】:

我们正在开发 Caller ID 应用程序,到目前为止,我们可以用我们自己的布局/来电显示屏幕替换默认的来电屏幕,然后 http://developer.android.com/reference/android/telephony/TelephonyManager.html 使用 CALL_STATE_RINGING

但是,我们面临的问题如下:
a) 当手机有来电时,默认来电屏幕优先并立即显示
b) 1-2 秒后,我们的来电显示屏幕出现。 我们希望完全避免/抑制/延迟默认来电屏幕,以便用户体验更好。

【问题讨论】:

  • 你是怎么做到的?我在下面使用了你的代码,但我仍然可以看到默认的呼叫者屏幕,然后我的屏幕出现了。

标签: android telephonymanager


【解决方案1】:

我还没有找到完全抑制默认屏幕的方法。然而,在 startActivity 之前有一个较小的延迟(500 毫秒)对我有好处。 此外,我的 Intent 中有以下标志来启动我的自定义活动。我的代码看起来像:

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】:

    如果我们使用广播接收器,那么就可以使用我们自己的对话框和屏幕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多