等待 phone 屏幕亮起
Waiting till phone screen gets on
我想要的:
我正在开发一个应用程序,我想在来电时显示对话框/弹出窗口。
我在日志中观察到,在我的 activity 开始接收来电和 phone 屏幕开始之间有轻微的延迟。首先 activity 被解雇然后 phone 屏幕开始。
所以我想在 phone 屏幕打开后显示此对话框。简而言之,我想等到 phone 上车。
我试过的:
我在 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 即使在 google 上搜索了很多之后我也无法解决它。所以我用了另一种方法。
- 我已根据此 link
为 phone 屏幕状态创建了另一个*广播接收器
(*注意我已经有来电广播接收器)
但我无法弄清楚来电广播接收器将如何与 phone 屏幕广播接收器通信并等待 phone 屏幕打开。
- 我什至尝试在现有的广播接收器中添加意图操作,但还是不知道如何等到 phone 屏幕打开。
任何 pointers/suggestions?
在这个问题上折腾了很久,终于解决了。如果有人为类似问题而苦苦挣扎,请发布答案。
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);
就是这么简单。呸!!
我想要的:
我正在开发一个应用程序,我想在来电时显示对话框/弹出窗口。
我在日志中观察到,在我的 activity 开始接收来电和 phone 屏幕开始之间有轻微的延迟。首先 activity 被解雇然后 phone 屏幕开始。
所以我想在 phone 屏幕打开后显示此对话框。简而言之,我想等到 phone 上车。
我试过的:
我在 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 即使在 google 上搜索了很多之后我也无法解决它。所以我用了另一种方法。
- 我已根据此 link 为 phone 屏幕状态创建了另一个*广播接收器
(*注意我已经有来电广播接收器)
但我无法弄清楚来电广播接收器将如何与 phone 屏幕广播接收器通信并等待 phone 屏幕打开。
- 我什至尝试在现有的广播接收器中添加意图操作,但还是不知道如何等到 phone 屏幕打开。
任何 pointers/suggestions?
在这个问题上折腾了很久,终于解决了。如果有人为类似问题而苦苦挣扎,请发布答案。
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);
就是这么简单。呸!!