短信UI--短信设置界面之彩信设置

彩信设置

1、前言

      关于彩信的设置,主要相关设置项为发送报告、已读报告、自动接收附件。这几个选项对于用户来说非常重要,例如自动接收,如果用户打开了,这样一来彩信一接收就会自动去下载,这样会带来什么问题了,现在有很多垃圾彩信,用户不希望耗费流量去接收,所以用户就必须关掉该项功能。下面请看其设置主界面:           
        
图1  彩信设置界面

2、功能解析

2.1 传送报告、已读报告

       该项和短信的传送报告类似,它是在那是用的了??
       在短信和彩信的发送是在WorkingMessage的send方法中进行分家的,短信会调用sendSmsWork,彩信会调用sendMmsWork方法;这里彩信的设置肯定也是和该法脱不了关系;sendMmswork会调用updatePreferencesHeaders()方法,这里了就是对于彩信头的包装,
    // Update the headers which are stored in SharedPreferences.
    private void updatePreferencesHeaders(SendReq sendReq) throws MmsException {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);

        // Expiry.
        sendReq.setExpiry(prefs.getLong(
                MessagingPreferenceActivity.EXPIRY_TIME, DEFAULT_EXPIRY_TIME));

        // Priority.
        sendReq.setPriority(prefs.getInt(MessagingPreferenceActivity.PRIORITY, DEFAULT_PRIORITY));

        // Delivery report.传送报告
        boolean dr = prefs.getBoolean(MessagingPreferenceActivity.MMS_DELIVERY_REPORT_MODE,
                DEFAULT_DELIVERY_REPORT_MODE);
        sendReq.setDeliveryReport(dr?PduHeaders.VALUE_YES:PduHeaders.VALUE_NO);

        // Read report.已读报告
        boolean rr = prefs.getBoolean(MessagingPreferenceActivity.READ_REPORT_MODE,
                DEFAULT_READ_REPORT_MODE);
        sendReq.setReadReport(rr?PduHeaders.VALUE_YES:PduHeaders.VALUE_NO);
    }
     可以看到这里对传送报告和已读报告都在这里进行值的设置。

2.2 自动接收附件

           这里大致分为两种是一般彩信的接收、漫游,本文对漫游自动接收彩信不做分析,对于一般彩信的接收问题进行简单的分析。大家知道彩信接收的时候会用一条短信来通知用户,这时如果短信通知后根据是否自动下载区做下载动作,如果没有开启自动下载功能,程序不会去下载,用户可以通过界面手动下载。其下载的具体动作在NotificationTransaction类中;
public void run() {
        DownloadManager downloadManager = DownloadManager.getInstance();
        boolean autoDownload = downloadManager.isAuto();
        boolean dataSuspended = (MmsApp.getApplication().getTelephonyManager().getDataState() ==
                TelephonyManager.DATA_SUSPENDED);
            // By default, we set status to STATUS_DEFERRED because we
            // should response MMSC with STATUS_DEFERRED when we cannot
            // download a MM immediately.
            int status = STATUS_DEFERRED;
            // Don't try to download when data is suspended, as it will fail, so defer download
            if (!autoDownload || dataSuspended) {
                downloadManager.markState(mUri, DownloadManager.STATE_UNSTARTED);
                sendNotifyRespInd(status);
                return;
            }
            downloadManager.markState(mUri, DownloadManager.STATE_DOWNLOADING);
               ...............................................................
大家可以看出在此会根据用户设置的值来判断是否需要自动下载。

3、总结

         本文非常简单的描述了一下彩信设置的相关问题,没有详细分析,可能给大家一种比较抽象的感觉,这里笔者考虑到关于彩信部分没有仔细讲所以这里就粗略的介绍设置时怎么回事。后面笔者会将彩信的各个要点进行详细分析。
                        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值