Android上的来电显示-如何抑制/延迟默认来电屏幕?

问题描述

| 我们正在开发来电显示应用程序,到目前为止,我们可以使用CALL_STATE_RINGING将http://developer.android.com/reference/android/telephony/TelephonyManager.html之后的认来电屏幕替换为我们自己的布局/来电显示屏幕。 但是,我们面临的问题如下: a)当电话接到来电时,认来电屏幕将获得优先级并立即显示 b)1-2秒后,我们的呼叫者ID屏幕出现。 我们希望完全避免/抑制/延迟认的来电屏幕,以使用户体验更好。     

解决方法

我还没有找到完全隐藏默认屏幕的方法。但是,在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);
        }
    ,如果我们使用广播接收器,则可以使用我们自己的对话框和屏幕。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...