2017-01-15 11 views
2

preferences.xml에 체크 박스 기본 설정을 추가했습니다. 모든 환경 설정을 정의한 파일은 settings.java입니다. 지금 메시지가 들어올 때 알림을 표시하는 별도의 Java 파일이 있습니다. 확인란이 true 인 경우 알림을 소리 내고 싶습니다.RingtoneManager를 사용하여 알림을 무음으로 변경하는 방법

if(PreferenceManager.getDefaultSharedPreferences(Receiver.mContext).getString(Settings.PREF_SILENT_MODE, "").equals("true")) 
          //Make the notification silent ie. 
    else 
      Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

notification.sound = alarmSound; 

소리 알림 유형 벨소리 관리자와 연관된 TYPE_NOTIFICATION 방법이있다. 이걸 침묵시킬 방법이 있니?

AudioManager를 사용하여 소리가 나지 않게하는 방법이 있습니다. setRingerMode(AudioManager.RINGER_MODE_SILENT); 하지만 여기에서는 벨소리 관리자가 사용되고 있습니다.

Edit--

는 IT 냈 (플래그이다 된 SharedPreferences에서 체크 박스 선호 결과 리턴 부울 값)

settings.java를 파일 -

public boolean checksilentmode(Context mContext) 
    { 
     SharedPreferences prefs= PreferenceManager.getDefaultSharedPreferences(mContext); 
     return prefs.getBoolean(PREF_SILENT_MODE,DEFAULT_SILENT_MODE); 
    } 

다른 자바 파일 -

`if(flag) //if flag is true ie silent mode is enabled.  
    {  
     alarmSound=null; 
    } 
    else 
    { 

alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    } 

     notification.sound = alarmSound;` 

답변

0

이 모든 작업을 수행 할 필요가 없습니다 ... notifi를 표시하는 경우 NotificationCompact.Builder를 사용하는 양이온은 다음과 같습니다.

notificatiomCompactBuilder.setDefaults(4);