- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android短信会话测试
古之成大事者,不惟有超世之才,亦有堅韌不拔之志。北宋.蘇軾《晁錯論》
我们的前辈中那些成就大事的人,不单单有过人的智慧和才能,也须有坚韧不拔的意志。试问没有坚韧的意志,如何写得出复杂的系统,如何创造出伟大的产品?作为程序员的我们,智慧和才能似乎不太欠缺,我们欠缺的也许是正是坚韧的意志,所以从今天起,锻炼自己的意志吧,在坚持理想的道路上,让这种意志给自己力量。
今天我们来讲一下如何利用ContentProvider读写短消息。
上次我们讲了如何通过ContentProvider机制读写联系人,通过读取联系人信息和添加联系人这两种方式对联系人进行操作,相信大家对ContentProvider的基本使用方法也有所了解了。在Android中ContentProvider应用场合还很多,读写短消息就是其中一个,今天我们就来探讨一下利用ContentProvider操作短消息的问题。
相对于联系人来说,短消息不是公开的,所以没有专门的API供我们调用,这就要求我们根据源代码进行分析研究,制定出一定的操作方案。
我们需要先找到短消息的数据源,打开/data/data/viders.telephony可以看到:
其中的mmssms.db就是短消息的数据源,朋友们可以导出一下这个文件,用专业工具软件查看一下表结构。为了方便大家理解,我简单介绍一下今天涉及到的两张表以及表中的常用字段:
如图所示,两张表分别是threads表和sms表,前者代表所有会话信息,每个会话代表和一个联系人之间短信的群组;后者代表短信的具体信息。在sms表中的thread_id指向了threads表中的_id,指定每条短信的会话id,以便对短信进行分组。下面介绍一下表中的每个字段的意义:
threads表:_id字段表示该会话id;date表示该会话最后一条短信的日期,一般用来对多个会话排序显示;message_count表示该会话所包含的短信数量;snippet表示该会话中最后一条短信的内容;read表示该会话是否已读(0:未读,1:已读),一般来说该会话中有了新短信但没查看时,该会话read变为未读状态,当查看过新短信后read就变为已读状态。
sms表:_id表示该短信的id;thread_id表示该短信所属的会话的id;date表示该短信的日期;read表示该短信是否已读;type表示该短信的类型,例如1表示接收类型,2表示发送类型,3表示草稿类型;body表示短信的内容。
下面我们会通过单元测试的方式演示一下读取会话信息和短信内容。在写代码之前,我们先初始化一些数据,具体过程是启动三个模拟器5554、5556、5558,让5554分别与5556和5558互发短信,如下:
我们看到5554这小子名叫Jack;5556名叫Lucy,可能认识有几天了,手机上存了她的号码;5558名叫Lisa,可能刚认识,还没来得及存号码。Jack这小子真狠啊,想同时泡两个妞,难道名字叫Jack的长得都很帅?下面是以上的两个会话信息:
可以看到,因为在联系人里存了Lucy,所以显示时并不再直接显示陌生的数字,而是其名字;括号内显示了该会话的短信数;下面文字显示了最后一条短信的内容和日期。
下面我们创建一个名为SMSTest的单元测试类,用于读取会话信息和短信内容,代码如下:
[java] view plaincopyprint?
package?vider;??
??
import?java.text.SimpleDateFormat;??
??
import?android.content.ContentResolver;??
import?android.database.Cursor;??
import?android.database.CursorWrapper;??
import?.Uri;??
import?android.test.AndroidTestCase;??
import?android.util.Log;??
??
public?class?SMSTest?extends?AndroidTestCase?{??
??????
????private?static?final?String?TAG?=?SMSTest;??
??????
????//会话 ??
????private?static?final?String?CONVERSATIONS?=?content://sms/conversations/;??
????//查询联系人 ??
????private?static?final?String?CONTACTS_LOOKUP?=?content://com.android.contacts/phone_lookup/;??
????//全部短信
您可能关注的文档
最近下载
- 矿房切割天井等施工设计.doc VIP
- 规范《GB10051.1-88-起重吊钩机械性能、起重量、应力及材料》.pdf
- 小学二年级体育学情分析_小学二年级体育教学计划.pdf
- 幼儿园 中班数学:《10以内的相邻数》.ppt VIP
- 哈利波特与魔法石(中英对照文本).pdf
- 2018八年级道德与法治下册 第二单元 理解权利义务 第四课 公民义务 第1框 公民基本义务同步测试题 新人教版.doc VIP
- 常丽 《政府与非营利组织会计》第5章 财政总预算会计核算.pptx VIP
- 跨绕城高速钢箱梁步履式顶推安全专项施工方案.docx
- 安全知识绘本居家安全.pptx VIP
- 国标人防图集规范 - 08FJ06 防空地下室施工图设计深度要求及图样.pdf
文档评论(0)