源代码例子下载:http://download.csdn.net/detail/yb1239958836/4779894
首先获取当前的情景模式:
代码void getInitring(AudioManager audio)
{
//取得手机的初始音量,并初始化进度条
int volume=audio.getStreamVolume(AudioManager.STREAM_RING); //取得初始音量
//取得初始模式,并分别设置图标
int mode=audio.getRingerMode(); //取得初始模式
}
先是得到AudioManager,如下:
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
设置情景模式一:只声音,无振动:
代码
void ring(AudioManager audio) {
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_OFF);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_OFF);
Toast.makeText(this, "设置成功!当前为铃声", Toast.LENGTH_LONG).show();
}
设置后系统只有声音,没有振动。
设置情景模式二:即有声音也有振动:
代码
void ringAndVibrate(AudioManager audio) {
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_ON);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_ON);
Toast.makeText(this, "设置成功!当前为铃声加振动", Toast.LENGTH_LONG).show();
}
这样设置后,在发声的时候同时也会有振动提醒。
设置情景模式三:只能振动:
代码
void vibrate(AudioManager audio) {
audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_ON);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_ON);
Toast.makeText(this, "设置成功!当前为振动", Toast.LENGTH_LONG).show();
}
此设置后只有振动,没有声音:
设置情景模式四:无声无振动:
代码
void noRingAndVibrate(AudioManager audio) {
audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
AudioManager.VIBRATE_SETTING_OFF);
audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
AudioManager.VIBRATE_SETTING_OFF);
Toast.makeText(this, "设置成功!当前为无声无振动", Toast.LENGTH_LONG).show();
}
设置后系统没有声音和振动。无法进行相应的提示。
以上所有设置的声音均为系统默认的声音大小,那么我们是否可以自定义声音的大小呢,答案是当然可以。要设置声音的大小 ,需要设置以下函数:
提高音量:
audio.adjustVolume(AudioManager.ADJUST_RAISE, 0);
减小音量:
audio.adjustVolume(AudioManager.ADJUST_LOWER, 0);
以上为最基本的设置方法,在使用中有许多更复杂的组合都是由此基本的方法组合而成的。