【问题标题】:how to listen for a call disconnect on android?如何在android上收听通话断开?
【发布时间】:2014-05-03 11:53:41
【问题描述】:
我正在尝试弄清楚如何在通话中断时收到通知 - 既包括来电也包括去电。目的是在通话断开时启动某些东西。
我查看了telephnyManager page,我可以看到 getCallState(),但是查看所有常量,我看不到任何像我正在寻找的东西。
我猜我需要设置一个广播接收器 - 我只是不确定我在听什么......
感谢您的帮助!!
【问题讨论】:
标签:
android
broadcastreceiver
telephonymanager
【解决方案1】:
如果有人正在寻找答案,这里是代码(您永远不知道该链接何时会失效!)。这不是完整的代码,但它将监听呼叫更改的代码。我第一次阅读文档时没有得到的是,得到一个 CALL_STATE_IDLE 响应,意味着之前的连接现在是空闲的 - 即,呼叫已断开。
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
private class ListenToPhoneState extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
Log.i("telephony-example", "State changed: " + stateName(state));
}
String stateName(int state) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE: return "Idle";
case TelephonyManager.CALL_STATE_OFFHOOK: return "Off hook";
case TelephonyManager.CALL_STATE_RINGING: return "Ringing";
}
return Integer.toString(state);
}
}