首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在演讲结束后关闭通知

如何在演讲结束后关闭通知
EN

Stack Overflow用户
提问于 2017-05-30 22:34:28
回答 2查看 42关注 0票数 0

如何在语音运行时保持通知?

主要活动:

代码语言:javascript
复制
TextToSpeech tts;

...

public void notification () {
NotificationCompat.Builder notification = 
new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.ic_volume_up_white_36dp)
.setOngoing(true)
NotificationManager NotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
NotifyMgr.notify(1, notification.build());
}

...

public void speak() {
    tts=new TextToSpeech(getApplicationContext(),new TextToSpeech.OnInitListener() {
        @Override
        public void onInit(int status) {
            notification(); //Call Notification
            tts.setLanguage(Locale.US);
            tts.speak("message", TextToSpeech.QUEUE_FLUSH, null);
        }
    });
}

执行通知取消操作所需的内容以及应在何处输入通知

代码语言:javascript
复制
NotifyMgr.cancel(1);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-31 15:02:01

使用isSpeaking方法检查tts是否在说话。

代码语言:javascript
复制
if(!isSpeaking()){
notifymgr.cancel(1);
}

参考文献

票数 0
EN

Stack Overflow用户

发布于 2017-05-31 16:26:20

这对我有用。

代码语言:javascript
复制
public void speakNotification() {
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            NotificationManager NotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            if (tts.isSpeaking()) {
                NotifyMgr.notify(3, notificationSpeak.build());
            } else {
                speakNotification();
            }
            if(!tts.isSpeaking()) {
                NotifyMgr.cancel(3);
            } else {
                speakNotification();
            }
        }
    }, 1); //1 is the update time
}

public void speakMotd() {
    tts=new TextToSpeech(getApplicationContext(),new TextToSpeech.OnInitListener() {
        @Override
        public void onInit(int status) {
            speakNotification();
            tts.setLanguage(Locale.US);
            tts.speak("message", TextToSpeech.QUEUE_FLUSH, null);
        }
    });
}

因为应用程序停止工作,所以需要新的处理程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44272952

复制
相关文章

相似问题

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