40-Android之Mms在双卡时每条信息显示卡号

14 篇文章 3 订阅

40-Android之Mms在双卡时每条信息显示卡号


平台: MTK6739 Android10

双卡时, 客户要求会话里面的信息都需要显示卡号.
考虑在每条信息后面添加.

packages/apps/Mms/src/com/android/mms/ui/MessageListItem.java 

private CharSequence formatMessage(MessageItem msgItem, String body, String subject, Pattern highlight, String contentType) {
    SpannableStringBuilder buf = new SpannableStringBuilder();

    boolean hasSubject = !TextUtils.isEmpty(subject);
    if (hasSubject) {
        buf.append(mContext.getResources().getString(R.string.inline_subject, subject));
    }

    if (!TextUtils.isEmpty(body)) {
        // Converts html to spannable if MmsContentType is "text/html".
        if (contentType != null && MmsContentType.TEXT_HTML.equals(contentType)) {
            buf.append("\n");
            buf.append(Html.fromHtml(body));
        } else {
            if (hasSubject) {
                buf.append(" - ");
            }
            buf.append(body);
        }
    }
	
	// 修改此处 begin @{
	// 之前直接用过subId, 但是出现不同机器上显示不同的subId,
	// 由于代码默认是支持4张卡的, 导致有些显示1/2, 2/3, 1/3等
    int subId = msgItem.getSubId();
    SubscriptionManager subscriptionManager = (SubscriptionManager) mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
    if(subscriptionManager.getActiveSubscriptionInfo(subId) != null) {
        int simSlotIndex = subscriptionManager.getActiveSubscriptionInfo(subId).getSimSlotIndex();
        String simCard = mContext.getResources().getString(R.string.card) + (simSlotIndex + 1);
        buf.append(" ").append(simCard);
    }
    // }@ end

    // add for ipmessage
    buf = new SpannableStringBuilder(IpMessageUtils.formatIpMessage(body, true, buf));

    if (highlight != null) {
        Matcher m = highlight.matcher(buf.toString());
        while (m.find()) {
            buf.setSpan(new StyleSpan(Typeface.BOLD), m.start(), m.end(), 0);
        }
    }
    
    buf.setSpan(mLeadingMarginSpan, 0, buf.length(), 0);
    
    return buf;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值