问题描述
|
我们正在开发来电显示应用程序,到目前为止,我们可以使用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);
}
,如果我们使用广播接收器,则可以使用我们自己的对话框和屏幕。