Android短信管理

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值