【发布时间】:2010-08-09 14:39:02
【问题描述】:
我想知道如何拦截来电并自动激活扬声器。我读到这个类是使用 com.android.internal.telephony 但我找不到合适的文档。感谢您的帮助。
【问题讨论】:
我想知道如何拦截来电并自动激活扬声器。我读到这个类是使用 com.android.internal.telephony 但我找不到合适的文档。感谢您的帮助。
【问题讨论】:
这是拦截来电的代码
PhoneStateListener mListner = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_OFFHOOK:
// TODO
break;
case TelephonyManager.CALL_STATE_RINGING:
// TODO
break;
default:
break;
}
};
};
激活扬声器
AudioManager POAudioService = (AudioManager) POContext.getContext().getSystemService(Context.AUDIO_SERVICE);
POAudioService.setSpeakerphoneOn(true);
【讨论】:
private TelephonyManager telManager;
//on create method
telManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if (telManager != null) {
telManager.listen(phoneStateListener,
PhoneStateListener.LISTEN_CALL_STATE);
}
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
onCall = true;
} else if (state == TelephonyManager.CALL_STATE_IDLE) {
onCall = false;
} else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
onCall = true;
//activate your loud speaker
}
super.onCallStateChanged(state, incomingNumber);
}
};
【讨论】:
所需权限: 使用权限 android:name="android.permission.MODIFY_AUDIO_SETTINGS"
【讨论】: