我想知道如何拦截来电并自动激活扬声器。我读到这个类是使用 com.android.internal.telephony 但我找不到合适的文档。谢谢你的帮助。
问问题
990 次
3 回答
2
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);
}
};
于 2011-10-25T10:33:55.090 回答
2
这是拦截来电的代码
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);
于 2011-10-25T10:23:33.507 回答
1
所需权限:使用权限 android:name="android.permission.MODIFY_AUDIO_SETTINGS"
于 2012-02-12T19:45:15.807 回答