呼出电话状态

5

我的问题是,当我打出去的电话被接收者接听时,我希望得到通知。在Android SDK中是否可能实现。

onCallStateChanged函数只有在拨打电话(OFFHOOK)和接收电话者挂断电话(IDLE)时才会被调用,但没有状态参数可以知道另一端的人是否接听了电话。

public class MyPhoneStateListener extends PhoneStateListener{

    public void onCallStateChanged(int state,String incomingNumber){
        Log.d("Checking---->",TelephonyManager.ACTION_PHONE_STATE_CHANGED);
    }
}

当另一端接收到呼叫时,Logcat仅提供以下信息:

01-19 19:33:30.633: DEBUG/CallNotifier(638): stopRing()... (OFFHOOK state)
01-19 19:33:30.662: DEBUG/Ringer(638): stopRing()...
01-19 19:33:30.694: DEBUG/Ringer(638): - stopRing: null mRingHandler!
01-19 19:33:31.256: DEBUG/PhoneApp(638): updateWakeState: callscreen true, dialer false, speaker false...
01-19 19:33:31.287: DEBUG/PhoneApp(638): updateWakeState: keepScreenOn = false (isRinging false, showingDisc false)
1个回答

1

我也遇到了同样的问题。我使用PhoneStateListener来处理来电,它运行良好。但是对于去电,我只能通过注册BroadcastReceiver到android.intent.action.NEW_OUTGOING_CALL意图来实现。

据我所知,没有办法确定对方是否已经接听电话。但是,您可以使用CallLog离线检索通话信息。详细的通话状态事件仅在内部类com.android.internal.telephony.Phone中可用,除非您编译自己的Andoid,否则无法访问该类。


2
这没有意义。制造商知道通话何时连接。如果对他们可用,对你也可用。 - o_O
2
@RKS 是的,这是有道理的。在拨号器拨打电话后,呼出状态立即从CALL_STATE_IDLE变为CALL_STATE_OFFHOOK,即使对方尚未接听他们的电话。 - user1521536

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接