立即注册
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广州大学城网业务调整

[Java/JSP] 看Android 短信的一些关键字 [复制链接] qrcode

查看: 2352 | 回复: 0

大法师的 该用户已被删除
发表于: 2012-12-21 15:24:16 | 显示全部楼层

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      协议,分为: 0SMS_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中

java代码:
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中查询字段为“*”,相关的条件为空白   删除信息:

java代码:
this.getContentResolver().delete(Uri.parse("content://sms"),"_id=?", new String[]{"3"});
       Url中content://sms 替换成content://sms/ 也成功,但是其它url时程序报错,比如content://sms/inbox记得要加上权限

java代码:
<uses-permissionandroid:name="android.permission.WRITE_SMS"></uses-permission>
<uses-permissionandroid:name="android.permission.READ_SMS"></uses-permission>

 QQ 744437114
  疯狂软件官网:http://www.fkjava.org
  疯狂java视频 android视频:http://www.fkjava.org/video.html
跳转到指定楼层
快速回复 返回顶部 返回列表