(转)设置静音和振动

静音和振动都属于来电后的动作.所以在设置静音和振动时都只是设置一些标识,并往数据库写入相应标识.
  文件:packages/apps/settings/src/com/Android/settings/SoundAndDisplaySettings.Java

java代码:

  1. private CheckBoxPreference mSilent;
  2. private CheckBoxPreference mVibrate;
  3. private void setRingerMode(boolean silent, boolean vibrate) {
  4. if (silent) {
  5. mAudioManager.setRingerMode(vibrate ? AudioManager.RINGER_MODE_VIBRATE :
  6. AudioManager.RINGER_MODE_SILENT);
  7. } else {
  8. mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
  9. mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
  10. vibrate ? AudioManager.VIBRATE_SETTING_ON
  11. : AudioManager.VIBRATE_SETTING_OFF);
  12. }
  13. }
  14. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
  15. if (preference == mSilent || preference == mVibrate) {
  16. setRingerMode(mSilent.isChecked(), mVibrate.isChecked());
  17. if (preference == mSilent) updateState(false);
  18. }


       静音和振动是复选框按钮,两个中有一个发生变化时调用setRingerMode对状态进行设置;如下状态描术:
  RINGER_MODE_SILENT 静音,且无振动
  RINGER_MODE_VIBRATE 静音,但有振动
  RINGER_MODE_NORMAL 正常声音,振动开关由setVibrateSetting决定.
  铃响模式的设置是通过mAudioManager(音频管理器)来实现的.

posted @ 2012-03-30 14:33  幻星宇  阅读(476)  评论(0编辑  收藏  举报