2017-01-15 1 views
2

J'ai ajouté une préférence de case à cocher dans preferences.xml. Il y a un fichier settings.java qui a défini toutes les préférences. Maintenant, il y a un fichier java séparé qui affiche une notification quand un message arrive. Si la case à cocher est vrai, je voudrais rendre la notification silencieuse.Comment faire une notification silencieuse à l'aide de 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; 

Il existe une méthode TYPE_NOTIFICATION associée au gestionnaire des sonneries pour le type de notification du son. Y a-t-il un moyen de rendre ce silence?

Je sais qu'il existe un moyen de le rendre silencieux en utilisant AudioManager. setRingerMode(AudioManager.RINGER_MODE_SILENT); Mais ici, le gestionnaire de sonnerie est utilisé.

Edit-- tout compris (drapeau est une valeur booléenne qui retourne le résultat de préférence de case de SharedPreferences)

settings.java file-

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

autre 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;` 

Répondre

0

Pas besoin de faire tout cela ... si vous montrez notifi cation en utilisant NotificationCompact.Builder faire quelque chose comme ci-dessous

notificatiomCompactBuilder.setDefaults(4);