Android 短信数据库详细总结分析
短信 sms
文件 /data/data/com.android.providers.telephony/databases/mmssms.db
这个数据库有13张表,sms表存了短信信息。
sms表的uri是
publicstaticfinalUriCONTENT_URI=Uri.parse("content://sms");
表项含义,我猜的
strColumnName=_id strColumnValue=48 //短消息序号
strColumnName=thread_id strColumnValue=16 //对话的序号(conversation)
strColumnName=address strColumnValue=+8613411884805 //发件人地址,手机号
strColumnName=person strColumnValue=null //发件人,返回一个数字就是联系人列表里的序号,陌生人为null
strColumnName=date strColumnValue=1256539465022 //日期 long型,想得到具体日期自己转换吧!
strColumnName=protocol strColumnValue=0 //协议
strColumnName=read strColumnValue=1 //是否阅读
strColumnName=status strColumnValue=-1 //状态
strColumnName=type strColumnValue=1 //类型 1是接收到的,2是发出的
strColumnName=reply_path_present strColumnValue=0 //
strColumnName=subject strColumnValue=null //主题
strColumnName=body strColumnValue=您好 //短消息内容
strColumnName=service_center strColumnValue=+8613800755500 //短信服务中心号码编号,可以得知该短信是从哪里发过来的
把源码补上。
在frameworks/base/core/java/android/provider/Telephony.java
/***ThethreadIDofthemessage*<P>Type:INTEGER</P>*/
publicstaticfinalStringTHREAD_ID="thread_id";
/***Theaddressoftheotherparty*<P>Type:TEXT</P>*/
publicstaticfinalStringADDRESS="address";
/***ThepersonIDofthesender*<P>Type:INTEGER(long)</P>*/
publicstaticfinalStringPERSON_ID="person";
/**
*Thedatethemessagewassent
*<P>Type:INTEGER(long)</P>*/
publicstaticfinalStringDATE="date";
/**
*Theprotocolidentifiercode
*<P>Type:INTEGER</P>*/
publicstaticfinalStringPROTOCOL="protocol";
/**
*Hasthemessagebeenread
*<P>Type:INTEGER(boolean)</P>*/
publicstaticfinalStringREAD="read";
/**
*TheTP-Statusvalueforthemessage,or-1ifnostatushas
*beenreceived*/
publicstaticfinalStringSTATUS="status";us举例:
publicstaticfinalintSTATUS_NONE=-1;
publicstaticfinalintSTATUS_COMPLETE=0;
publicstaticfinalintSTATUS_PENDING=64;
publicstaticfinalintSTATUS_FAILED=128;
/**
*Thetypeofthemessage
*<P>Type:INTEGER</P>*/
publicstaticfinalStringTYPE="type";举例
publicstaticfinalintMESSAGE_TYPE_ALL=0;
publicstaticfinalintMESSAGE_TYPE_INBOX=1;
publicstaticfinalintMESSAGE_TYPE_SENT=2;
publicstaticfinalintMESSAGE_TYPE_DRAFT=3;
publicstaticfinalintMESSAGE_TYPE_OUTBOX=4;
publicstaticfinalintMESSAGE_TYPE_FAILED=5;//forfailedoutgoingmessages
publicstaticfinalintMESSAGE_TYPE_QUEUED=6;//formessagestosendlater
/**
*Whetherthe<code>TP-Reply-Path</code>bitwassetonthismessage
*<P>Type:BOOLEAN</P>*/
publicstaticfinalStringREPLY_PATH_PRESENT="reply_path_present";
/**
*Thesubjectofthemessage,ifpresent
*<P>Type:TEXT</P>*/
publicstaticfinalStringSUBJECT="subject";
/**
*Thebodyofthemessage
*<P>Type:TEXT</P>*/
publicstaticfinalStringBODY="body";
/**
*Theservicecenter(SC)throughwhichtosendthemessage,ifpresent
*<P>Type:TEXT</P>*/
publicstaticfinalStringSERVICE_CENTER="service_center";
分享到:
相关推荐
Android 短信数据库 开发资料,请参考我的博客!
在android当中动态的监听知信数据库是否有变化
Android GreenDao 数据库框架的使用http://blog.csdn.net/trycarrey/article/details/48288645
详细解析Android数据库内容变化的监听
Android Sqlite数据库demo
android数据库详解,及数据库增,删,改,查的封装,以及如何使用数据库的流程
android 各种数据库框架使用的Demoandroid 各种数据库框架使用的Demoandroid 各种数据库框架使用的Demoandroid 各种数据库框架使用的Demo
android系统自带的数据库管理工具,方便查看数据库,新建和修改数据库表结构和数据等。android开发必备。
Android 数据库SQLite 详解,简单学好SQLite
Android连接数据库
一个展示android studio 数据库的增删查改的小工程,运用了SQListeDatabase,并重写onCreate()和onCupgrade()方法
Android Room是Google发布的一个和SQLite相关的的数据库,它是一个轻量级的ORM(Object Relational Mapping)对象关系映射数据库,其本质上是对Android原生的SQLite的封装,只不过相对比原生操作更简单、高效,目前...
Android 数据库详细指南
Sqlite数据库学习总结,希望能有帮助
ndroid SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到...
Android 完成数据库的升级,给旧表中添加字段并保持原有数据,有界面操作提示。
Android Ormlite数据库使用,包含基本的增删改差操作,比起SQLite更加简单,没有频繁的数据库,查询语言,不了解的小伙伴可以先了解一下Ormlite数据库的简介http://www.jianshu.com/p/05782b598cf0
Android创建和使用数据库详细指南, sqlite
android sqlite数据库 demo code 小型便签 实现增加和编辑。删除数据 结构化存储数据
Android Sqlite 数据库通过 ORM 的方式操作起来会方便很多,效率也会提升很多。本课程将会详细讲解 ORM 数据库框架的使用,提升 Sqlite 的操作和开发效率。