本文主要实现扬声器与听筒的切换.而android中实现对音量和振铃模式的控制主要通过AudioManager类来实现.
AudioManager类 关于喇叭与听筒的主要方法


1. AudioManager 实例化

Context.getSystemService(Context.AUDIO_SERVICE)得到这个类的实例.


2. setSpeakerphoneOn
public void setSpeakerphoneOn (boolean on)
设置喇叭扩音器打开或关闭.
这个方法只能用于代替音频设置的平台范围管理应用程序或主要电话应用程序
参数

on   为true打开喇叭扩音器;为false关闭喇叭扩音器.


3.isSpeakerphoneOn
public boolean isSpeakerphoneOn ()
检查喇叭扩音器是否开着.
返回值

若喇叭扩音器开着,返回true.反之,返回false.


4. setMode
public void setMode (int mode)
设置音频模式.
音频模式包含音频路由和电话层的行为.因此,这个方法只能用于代替音频设置的平台范围管理应用程序或主要电话应用程序.特别地,MODE_IN_CALL模式只能用在当打电话时的电话程序中,因为它会引起信号从音频层馈入到平台混音器.
参数
mode        请求的音频模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL
                           或MODE_IN_COMMUNICATION)
.通知HAL当前的音频状态以便它能
                    适当的路由音频.
5. 实例实现

	private AudioManager audioManager = 
			(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
	/**
	 * 扬声器与听筒切换
	 * @param isSpeakerphoneOn
	 */
	public void setSpeakerphoneOn(boolean isSpeakerphoneOn){
		audioManager.setSpeakerphoneOn(isSpeakerphoneOn);
		if(!isSpeakerphoneOn){
             audioManager.setMode(AudioManager.MODE_NORMAL);
		}
	}




至此,本文讲解结束!