【问题标题】:Outgoing call status呼出状态
【发布时间】:2010-01-20 07:52:02
【问题描述】:

我的查询是,我想在我拨打电话时收到通知,如果对方接听我的电话。 Android SDK 可以吗?

onCallStateChanged 函数仅在此人拨打一个号码(OFFHOOK)时,从他的电话和当呼叫接收者断开呼叫时(IDLE),但没有 State 参数知道,另一端的人是否有接到电话了吗?

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)

【问题讨论】:

    标签: android


    【解决方案1】:

    我也有同样的问题。我使用 PhoneStateListener 来电,效果很好。但是对于拨出电话,我只能将 BroadcastReceiver 注册到意图 android.intent.action.NEW_OUTGOING_CALL。

    据我所知,没有办法确定对方是否收到了天气。但是,您可以使用 CallLog 离线检索呼叫信息。详细的通话状态事件只能通过内部类 com.android.internal.telephony.Phone 获得,除非您编译自己的 Andoid,否则您将无权访问。

    【讨论】:

    • 这没有意义。制造商知道通话何时接通。如果他们可以使用,那么您也可以使用。
    • @RKS 是的,这是有道理的。拨出电话状态在拨号器拨打电话后立即从CALL_STATE_IDLE 变为CALL_STATE_OFFHOOK,即使合作伙伴尚未拿起电话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多