android会把短信信心保存在数据库中,可查看/dbdata/databases/com.android.providers.telephony/mmssms.db。但是我们不能直接访问数据库,只能通过ContentProvider来访问它。

以下是访问短信数据库的uri

content://sms/inbox 收件箱
content://sms/sent 已发送
content://sms/draft 草稿
content://sms/outbox 发件箱
content://sms/failed 发送失败
content://sms/queued 待发送列表

数据库相关字段如下:

_id 一个自增字段,从1开始
thread_id 序号,同一发信人的id相同
address 发件人手机号码(根据这个查找联系人姓名?)
person 联系人列表里的序号,陌生人为null
date 发件日期,单位是milliseconds,从1970/01/01至今所经过的时间)
protocol 协议,分为: 0 SMS_RPOTO, 1 MMS_PROTO
read 是否阅读,0未读, 1已读
status 状态,-1接收,0 complete, 64 pending, 128 failed
type
ALL = 0;
INBOX = 1;
SENT = 2;
DRAFT = 3;
OUTBOX = 4;
FAILED = 5;
QUEUED = 6;

body 短信内容
service_center 短信服务中心号码编号
subject 短信的主题
reply_path_present TP-Reply-Path
locked

查询信息:

检索数据方法很简单:在Activity中

Uri uri = Uri.parse("content://sms/inbox");         Cursor cur = this.managedQuery(uri, null, null, null, null);         if (cur.moveToFirst()) {             do{         for(int j = 0; j < cur.getColumnCount(); j++){                 info = "name:" + cur.getColumnName(j) + "=" + cur.getString(j);             Log.i("====>", info);         }     }while(cur.moveToNext());      }

managedQuery(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

参数依次为

uri 上面已列出
查询字段查询字段数组,也可以将所有需要查询的字段放入一个字符内
比如new String[]{"_id", "thread_id"}和new String[]{"_id,thread_id"}是一致的。
跟SQL一样,字段名不区分大小写
条件 不带Where的SQL 条件字符比如"_id=? And thread_id = ? Or type = '1'"
条件中的参数 参数字符数组,跟上述的条件一一对应
排序 不带Order by排序字符串,比如_id desc, type
如果参数为null,SQL中查询字段为“*”,相关的条件为空白

删除信息:

this.getContentResolver().delete(Uri.parse("content://sms"), "_id=?", new String[]{"3"}); 

Url中content://sms 替换成content://sms/ 也成功,但是其它url时程序报错,比如content://sms/inbox

记得要加上权限

<uses-permission android:name="android.permission.WRITE_SMS"></uses-permission><uses-permission android:name="android.permission.READ_SMS"></uses-permission>

待续。。。

参考自http://www.cnblogs.com/GnagWang/archive/2011/01/06/1929075.html

更多相关文章

  1. android上传图片和参数(属性)到服务器
  2. Android jni中数组参数的传递方式
  3. Android 访问Webservice接口,参数对象不能串行化问题解决(java.lan
  4. Android中main.xml界面参数笔记
  5. android中LayoutParams设置参数的理解
  6. Android OKhttp 上传文件袋参数
  7. Android带参数链接请求服务器

随机推荐

  1. SqlServer备份数据库的4种方式介绍
  2. Windows下使用性能监视器监控SqlServer的
  3. SqlServer 2000、2005分页存储过程整理第
  4. 和表值函数连接引发的性能问题分析
  5. 在SQL Server中将数据导出为XML和Json的
  6. sql server中Select count(*)和Count(1)
  7. SQL Server中使用SQL语句实现把重复行数
  8. SQL Server中统计每个表行数的快速方法
  9. Sql Server中的事务介绍
  10. Sql Server中的视图介绍