【问题标题】:Waiting till phone screen gets on等到手机屏幕亮起
【发布时间】:2018-05-28 12:27:03
【问题描述】:

我想要什么:

我正在开发一个应用程序,我想在来电时显示对话框/弹出窗口。

我在日志中观察到,在我的活动开始来电和电话屏幕启动之间存在轻微延迟。第一个活动被触发,然后手机屏幕亮起。

所以我想在手机屏幕打开后显示这个对话框。简而言之,我想等到电话接通。

我尝试了什么:

  • 我在 BroadcastReceiver 中使用过 Asynctask

    protected Boolean doInBackground(Void... params) {
    
       PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        isScreenOn = powerManager.isInteractive();
        return  isScreenOn;
    }    
    

并关注this 的回答。但它给了我编译时异常

未处理的异常 java.util.concurrent.executionexception 即使在谷歌上搜索了很多之后我也无法解决它。所以我用了另一种方法。

  • 我已经根据link为手机屏幕状态创建了另一个*广播接收器

(*注意我已经有来电广播接收器)

但我无法弄清楚来电广播接收器如何与手机屏幕广播接收器通信并等到手机屏幕亮起。

  • 我什至尝试在现有广播接收器中添加意图操作,但又不知道如何等到手机屏幕亮起。

任何指示/建议?

【问题讨论】:

    标签: android broadcastreceiver android-service


    【解决方案1】:

    在这个问题上苦苦挣扎,终于可以解决了。如果其他人为类似问题而苦苦挣扎,请发布答案。

    case TelephonyManager.CALL_STATE_RINGING: //Incoming Call Ringing
    
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //Calling activity to show dialog / popup window.
                    }
                }, 1000);
    

    就这么简单。呼!!

    【讨论】:

      猜你喜欢
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      相关资源
      最近更新 更多