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

发布于 2024-10-31 18:58:02 字数 351 浏览 6 评论 0原文

我们正在开发来电显示应用程序,到目前为止,我们可以按照http://developer.android.com/reference/android/telephony/TelephonyManager.html 和 CALL_STATE_RINGING

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

We are developing Caller ID application and till now we are able to replace default incoming call screen with our own layout/caller ID screen following http://developer.android.com/reference/android/telephony/TelephonyManager.html with CALL_STATE_RINGING

However, the issue we are facing is as follows:
a) When phone gets incoming call, the default incoming call screen gets priority and gets displayed immediately
b) after 1-2 seconds, our caller ID screen come up.
we want to avoid/suppress/delay default incoming call screen completely so that user experience will be better.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请叫√我孤独 2024-11-07 18:58:02

我还没有找到完全抑制默认屏幕的方法。然而,在 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);
        }

I haven't found out a way to totally suppress the default screen. However a smaller delay (500 ms) before the startActivity works good for me.
Also, I have the following flags into my Intent to start my custom activity. My code looks something like :

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);
        }
私野 2024-11-07 18:58:02

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

If we use the Broadcast Recieiver then it is possible to use our own dialogbox and the screen.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文