zoukankan      html  css  js  c++  java
  • android 在短信发送界面, 短信发送失败时,提示音不完整,会被中断

    1. 当一条SMS到来, 此时SMS是unseen状态, 就会弹出Notification提示用户
    2. 但假设处于同一个联系人的界面下, 用户会立马看到这条SMS, 此时这条SMS会被高速的标记为seen, 并取消Notification, 所以用户会听到铃声响了一下又中断了
    3. Fail的短信也是相同的原理, 一開始这条fail的短信会被标记为unseen, 但同一时候由于处于同一个界面下, 已经看到了这条Fail的信息, 所以也会出现这个问题.
    如今的情况是新来SMS有一个feature, 推断当前处于同一个联系人界面下时, 不再弹出Notification, 取而代之是轻声响铃一下, 但不弹出Notification. 假设你认可这个feature, 我们能够把这个feature扩展到fail的信息上.
    你看Mms的code, 里面有个MessagingNotification.java, 当中一个方法是blockingUpdateNewMessageIndicator, 它里面有一句:
    synchronized (sCurrentlyDisplayedThreadLock) {
    我们能够把这段话copy到notifyFailed这种方法里,
    也就是在
            boolean enabled = NotificationPreferenceActivity.getNotificationEnabled(context);
            if (!enabled) {
                return;
            }
    之后,加上
               NotificationProfile notiProf = getNotificationProfileByThreadId(context, threadId);
            synchronized (sCurrentlyDisplayedThreadLock) {
                Log.d(TAG, "newMsgThreadId = " + threadId + "sCurrentlyDisplayedThreadId = " + sCurrentlyDisplayedThreadId);
                if (threadId > 0 && threadId == sCurrentlyDisplayedThreadId) {
                    if (DEBUG) {
                        Log.d(TAG, "blockingUpdateNewMessageIndicator: newMsgThreadId == " +
                                "sCurrentlyDisplayedThreadId so NOT showing notification," +
                                " but playing soft sound. threadId: " + threadId);
                    }
                        playInConversationNotificationSound(context, notiProf);
                    return;
                }
            }
    同一时候, 
    MessagingNotification.java中,由于notifySendFailed()传递给notifyFailed()的threadId永远都是0。所以麻烦你确认一下这里是否已经改成了有拿到threadId的方式:
    在Mms code中SmsReceiverService.java的函数messageFailedToSend()最后加入long threadId = MessagingNotification.getSmsThreadId(this, uri);就获得了正确的threadId。然后调用notifySendFailed(), 可能须要配合改动一下notifySendFailed()这种方法或者新定义一个方法.
  • 相关阅读:
    【总有一些东西老是忘】之——常见HTML的块级标签、内联标签
    【JS跨域取XML】之——借助AS的URLLoader
    【前端重构技能天赋】(二)——Javascript、CSS篇
    【IE大叔的嘴歪眼斜】之—— 由hasLayout引发的临床CSS Bug表
    【F12一下,看看页面里的第一行】——说说浏览器兼容性模式
    【IE大叔的杀马特审美】之——CSS盒子模型
    【前端重构技能天赋】(一)——内容篇
    【总有一些东西要弄清】——说说面试时一系列的CSS问题
    【拆了CSS照样是页面】之——HTML语义化(含H5)
    【javascript继承】之——原型链继承和类式继承
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6918889.html
Copyright © 2011-2022 走看看