Mms彩信添加联系人和日历时,时间格式与系统时间格式不相符的问题

本文深入解析了Android 5.1版本短信应用的工作流程,从ConversationList到ComposeMessageActivity的过渡,详细介绍了+号按钮触发的SharePanel界面及其背后的实现机制,特别是如何通过不同类型的附件进行联系人选择和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android的版本是5.1

点击短信图标,首先进入的是ConversationList这个Activity

ConversationList是用来储存会话列表的界面,我们发短信时与多个联系人的

会话都储存在这里

点击新建消息,进入到ComposeMessageActivity

这个UI界面有两个作用

1。处理一个新的消息

2。查看/管理一个会话的消息历史

在onCreate()方法中有2个初始化UI元素的方法

initResourceRefs()是初始化当前activity元素的方法

initShareRessource()是用来初始化底部+号和点击该+号后的界面

点击+号后,底部会出现SharePanel界面

方法里面初始化了mSharePanel,mSharePanel是一个linearLayout,

进入到SharePanel类里面看到有一个内部类为ShareAdapter继承了BaseAdapter,

里面重写了一系列方法,这里只需要注意下getView方法即可。

回到initShareRessource()方法里看到,给mSharePanel设置了Handler为mHandler

这个mHandler是在ComposeMessageActivity里定义的一个mHandler

找到这个mHandler,在它的handleMessage方法里面有一个判断,

当是case ACTION_SHARE时,会执行方法doMmsAction(msg)

进入到doMmsAction方法里面,根据判断得出commonAttachmentType的值,

继续看这个方法,当MmsConfig.isSupportAttachEnhance()为true时,

会执行 addAttachment(commonAttachmentType, true)这个方法

找到这个方法,重点来了--------------------

里面有判断,当case AttachmentTypeSelectorAdapter.ADD_VCARD时

新建一个intent,并调用了 startActivityForResult(intent, REQUEST_CODE_ATTACH_VCARD)

这时我们就会进入到相应的activity里去选取一个联系人,

选完之后,就会回到 onActivityResult方法里面,

进入到这个方法里面我们看到,里面有判断

 switch (requestCode) 

case REQUEST_CODE_ATTACH_VCARD

我们看到里面调用了asyncAttachVCardByContactsId(data)方法

进入asyncAttachVCardByContactsId(data)方法里

看到初始化了一个VCardAttachment

 紧接着有String fileName = va.getVCardFileNameByContactsId(contactsId)

进入到VCardAttachment的getVCardFileNameByContactsId方法里查看

里面有if (!ids.equals("")) {
            fileName = attachVCard(ids);
        }

进入到attachVCard里看到String fileName = createVCardFileName();

进入到createVCardFileName方法里面

终于找到了

直接将相应的代码改动如下:

 if(DateFormat.is24HourFormat(mContext)){
name =
               DateFormat.format("yyyyMMdd_HHmmss", new Date(System.currentTimeMillis())).toString();
}else{
name =
               DateFormat.format("yyyyMMdd_hhmmss", new Date(System.currentTimeMillis())).toString();
}

当case AttachmentTypeSelectorAdapter.ADD_VCALENDAR时,按照上诉一样走就可以找到相应的位置,

是在VCalendarModel的intiFromUri方法里修改即可


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值