首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RingtoneManager实现通知沉默

如何使用RingtoneManager实现通知沉默
EN

Stack Overflow用户
提问于 2017-01-15 12:59:53
回答 1查看 546关注 0票数 2

我在preferences.xml中添加了一个复选框首选项。有一个settings.java文件,它定义了所有的首选项。现在有一个独立的java文件,它在消息传入时显示一个通知。如果复选框为真,我想使通知保持静默。

代码语言:javascript
复制
    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);,但是在这里,铃声管理器正在被使用。

编辑--计算出了(标志是从SharedPreferences返回复选框首选项结果的布尔值)

settings.java文件-

代码语言:javascript
复制
public boolean checksilentmode(Context mContext)
    {
        SharedPreferences prefs= PreferenceManager.getDefaultSharedPreferences(mContext);
        return prefs.getBoolean(PREF_SILENT_MODE,DEFAULT_SILENT_MODE);
    }

另一个java文件-

代码语言:javascript
复制
   `if(flag)  //if flag is true ie silent mode is enabled.      
     {    
        alarmSound=null;
     }
    else 
    {

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

        notification.sound = alarmSound;`
EN

回答 1

Stack Overflow用户

发布于 2017-06-24 09:48:17

不需要做所有这些...if,您正在显示使用NotificationCompact.Builder的通知,请执行如下所示的操作

代码语言:javascript
复制
notificatiomCompactBuilder.setDefaults(4);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41661351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档