public class PhoneCallListener extends PhoneStateListener
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Log.v(this.getClass().getName(), "onCallStateChanged-state: " + state);
Log.v(this.getClass().getName(), "onCallStateChanged-incomingNumber: " + incomingNumber);
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE:
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
endCall();
//CALL_STATE_OFFHOOK;
break;
case TelephonyManager.CALL_STATE_RINGING:
if ("123456".equals(incomingNumber))
{
//mTelephonyService.endCall();
endCall();
}
else
{
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}
break;
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
@Override
public void onDataConnectionStateChanged(int state)
{
Log.v(this.getClass().getName(), "onDataConnectionStateChanged-state: " + state);
super.onDataConnectionStateChanged(state);
}
@Override
public void onDataConnectionStateChanged(int state, int networkType)
{
Log.v(this.getClass().getName(), "onDataConnectionStateChanged-state: " + state);
Log.v(this.getClass().getName(), "onDataConnectionStateChanged-networkType: " + networkType);
super.onDataConnectionStateChanged(state, networkType);
}
@Override
public void onServiceStateChanged(ServiceState serviceState)
{
Log.v(this.getClass().getName(), "onServiceStateChanged-ServiceState: " + serviceState);
super.onServiceStateChanged(serviceState);
}
@Override
public void onSignalStrengthChanged(int asu)
{
Log.v(this.getClass().getName(), "onSignalStrengthChanged-asu: " + asu);
super.onSignalStrengthChanged(asu);
}
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
Log.v(this.getClass().getName(), "onSignalStrengthsChanged-signalStrength: " + signalStrength);
super.onSignalStrengthsChanged(signalStrength);
}
}
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Log.v(this.getClass().getName(), "onCallStateChanged-state: " + state);
Log.v(this.getClass().getName(), "onCallStateChanged-incomingNumber: " + incomingNumber);
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE:
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
endCall();
//CALL_STATE_OFFHOOK;
break;
case TelephonyManager.CALL_STATE_RINGING:
if ("123456".equals(incomingNumber))
{
//mTelephonyService.endCall();
endCall();
}
else
{
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}
break;
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
@Override
public void onDataConnectionStateChanged(int state)
{
Log.v(this.getClass().getName(), "onDataConnectionStateChanged-state: " + state);
super.onDataConnectionStateChanged(state);
}
@Override
public void onDataConnectionStateChanged(int state, int networkType)
{
Log.v(this.getClass().getName(), "onDataConnectionStateChanged-state: " + state);
Log.v(this.getClass().getName(), "onDataConnectionStateChanged-networkType: " + networkType);
super.onDataConnectionStateChanged(state, networkType);
}
@Override
public void onServiceStateChanged(ServiceState serviceState)
{
Log.v(this.getClass().getName(), "onServiceStateChanged-ServiceState: " + serviceState);
super.onServiceStateChanged(serviceState);
}
@Override
public void onSignalStrengthChanged(int asu)
{
Log.v(this.getClass().getName(), "onSignalStrengthChanged-asu: " + asu);
super.onSignalStrengthChanged(asu);
}
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
Log.v(this.getClass().getName(), "onSignalStrengthsChanged-signalStrength: " + signalStrength);
super.onSignalStrengthsChanged(signalStrength);
}
}
本文详细介绍了如何在Android应用中实现对电话状态变化的监听,并根据不同状态进行相应的操作,如静音接听或挂断电话。
1330

被折叠的 条评论
为什么被折叠?



