2017-01-15 4 views
2

Ich habe eine Checkbox-Voreinstellung in preferences.xml hinzugefügt. Es gibt eine settings.java Datei, die alle Einstellungen definiert hat. Jetzt gibt es eine separate Java-Datei, die eine Benachrichtigung anzeigt, wenn eine Nachricht kommt. Wenn das Kontrollkästchen wahr ist, möchte ich die Benachrichtigung still machen.So machen Sie die Benachrichtigung stumm mit 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; 

Es gibt eine TYPE_NOTIFICATION Methode mit Klingelton-Manager zugeordnet ist für die Benachrichtigung Art von Sound. Gibt es eine Möglichkeit, dies zu stillen?

Ich weiß, dass es eine Möglichkeit gibt, mit AudioManager leise zu werden. setRingerMode(AudioManager.RINGER_MODE_SILENT); Aber hier wird Klingeltonmanager verwendet.

Edit-- es heraus (Flag ist ein Boolescher Wert, der das Ankreuzfeld Präferenz resultieren aus SharedPreferences zurückgegeben)

settings.java File-

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

andere Java-File-

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

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

     notification.sound = alarmSound;` 

Antwort

0

Keine Notwendigkeit, all dies zu tun ... wenn Sie notifi zeigen Kation mit NotificationCompact.Builder tun etwas wie unten

notificatiomCompactBuilder.setDefaults(4); 
Verwandte Themen