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中


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-permission android:name="android.permission.WRITE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>

更多相关文章

  1. Android短信管理
  2. Android之用户定位(三)
  3. Androidの联系人群组Group操作示例
  4. android 常用的数据库表以及操作说明
  5. Android(安卓)中数据库查询方法 query() 中的 selectionArgs 的
  6. android数据库编程----SqLiteOpenHelper的使用
  7. android通话记录的查询与删除
  8. android典型代码系列(二十二)------按键使上面的EditText抖动
  9. java/android查询手机固话归属地、GSM卡信息

随机推荐

  1. Android 开发常用ADB命令集合
  2. Android使用代码实现关机/重启
  3. 【Android】EditText的特殊属性介绍
  4. android 百度地图定位功能实现
  5. android Gallery实现加载网络图片
  6. Android Studio 常用技巧
  7. RelativeLayout的布局学习(部分知识点)
  8. 5.17学习内容 android判断软键盘状态、系
  9. 转:Bitmap造成OOM的讨论与解决方案
  10. 【Android okhttp源码解析 四】任务调度