【发布时间】:2013-01-15 14:42:24
【问题描述】:
在拨出电话的情况下,正在自动抛出 OFF HOOK 状态 大家好,首先我为我的英语道歉。
嗯,在我的应用程序中,我会监控每次通话之前和之后。但是就在通话开始之后,所以我对“响铃”状态无关紧要,但是我的应用程序正在触发一个假的“摘机”状态。当我拨打电话(拨出电话)时,我的应用程序在振铃后立即设置摘机状态。有了这个,我正在监视一个我不应该接听的电话,因为该电话无法接听。
有人遇到过这个问题吗?
AndroidManifest.xml
<receiver
android:name=".CallStateBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<receiver
android:name=".OutgoingCallBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
CallStateBroadcastReceiver:
CallStatePhoneStateListener phoneListener = new CallStatePhoneStateListener(context, intent);
TelephonyManager telephony = (TelephonyManager) context.getSystemService(
Context.TELEPHONY_SERVICE);
telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
CallStatePhoneStateListener:
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
// do something
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// do something
break;
case TelephonyManager.CALL_STATE_RINGING:
// do something
break;
}
OutgoingCallBroadcastReceiver:
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle == null)
return;
String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
// just save the number
}
【问题讨论】:
-
对不起,这是我的错误。当然,如果我打电话,我的电话会挂机,如果另一个人不接听也是一样。但是现在我有另一个疑问,我怎么知道我的拨出电话是否被接听?谢谢!
标签: android call state phone-state-listener