【问题标题】:How can I bring the call screen to front programatically?如何以编程方式将呼叫屏幕置于最前面?
【发布时间】:2015-01-11 22:16:41
【问题描述】:

我正在为有视力问题的人开发一款家庭替代应用。我不希望用户在通话过程中错误地离开通话屏幕。

如果用户在通话过程中不小心回到我的启动器,我会尝试以编程方式将屏幕显示在前面,但我不知道该怎么做。这就是我现在正在尝试的:

@Override
public void onResume() {
    // If call state offhook, go back to current call
    TelephonyManager telephony = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
    if (telephony.getCallState() == TelephonyManager.CALL_STATE_OFFHOOK) {
        Intent i = new Intent(Intent.ACTION_DIAL, null);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
        getApplicationContext().startActivity(i);
    }

如何将通话屏幕置于前面?

【问题讨论】:

  • 我可能过于简单化了,但是像 ACTION_CALL(没有数据 - 应该只打开应用程序)或 ACTION_CALL_BUTTON 这样的简单 Intent 不会吗?甚至可能是 ACTION_DIAL?
  • 您是否正在构建具有系统权限的系统应用程序?您的目标是什么 Android 版本?
  • 我支持 2.2 的版本。即使不支持某些版本,我也会接受符合目的的答案。

标签: android android-intent telephony telephonymanager


【解决方案1】:

我会给它一种不同的方法,将菜单隐藏在屏幕底部。这样用户就不会在通话过程中误按任何按钮。为此,您只需在调用期间添加以下代码行:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

因此它看起来类似于下面的屏幕:

这种方法听起来如何?希望对你有帮助:)

【讨论】:

  • 嗨,米歇尔,我很抱歉,但这不是我要找的。只是好奇我应该在哪里添加那行?在我看来,如果我在打开通话之前这样做,我只会隐藏我的活动菜单。
猜你喜欢
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2010-09-23
  • 2013-10-17
相关资源
最近更新 更多