我发现很多问题都在描述如何使用 telephonymanager 获取电话的通话状态。我在 stackoverflow 中关注了这个问题 - How to detect when phone is answered or rejected .但这是为了分别检测各种电话状态。 只有当来电挂断且无人接听时,我才需要添加提醒对话框。 如何检测此特定事件。?
最佳答案
Android 5.0 及更高版本可能会发送重复事件。您可以考虑保留之前的状态以进行比较 -
private class PhoneStateChangeListener extends PhoneStateListener {
static final int IDLE = 0;
static final int OFFHOOK = 1;
static final int RINGING = 2;
int lastState = IDLE;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch(state){
case TelephonyManager.CALL_STATE_RINGING:
lastState = RINGING;
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
lastState = OFFHOOK;
break;
case TelephonyManager.CALL_STATE_IDLE:
if (lastState == RINGING) {
// Process for call hangup without being answered
}
lastState = IDLE;
break;
}
}
}
关于android - 如何检测未接听的来电挂断。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716227/