使用到的權限有:
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
通過ContentResover查詢删除添加修改短信資訊
1.查詢列印所有的短信資訊
cursor=context.getContentResolver().query(Uri.parse("content://sms/sent"),null,null,null, "_id desc");
if(cursor!=null){
while(cursor.moveToNext()){
for(int i=0;i<cursor.getColumnCount();i++){
Log.i("mi", ""+cursor.getColumnName(i)+":"+cursor.getString(i));
}
}
cursor.close();
}
會得到如下資訊:
_id:1980 //詞條短信的唯一id
thread_id:359 //會話(和同一個人發送的所有短信在一個會話裡)的ID
address:106571005610093 //手機号
person:null
date:1413799125022 //發送或接收時間
date_sent:1413799118000 //這個不知道是什麼時間,
protocol:0
read:1 //是否已讀 0未讀;1已讀
status:-1
type:1 //1對方發送;2自己發送
reply_path_present:0
subject:null
body:【微店】<交易完成>買家:該筆訂 單支援7天無理由退貨,貨款将在7天後結算,您可以在“我的收入”中查詢。
service_center:+8613800100558
locked:0
error_code:0
seen:1
deletable:0
hidden:0
group_id:null
group_type:null
delivery_date:null
app_id:0
msg_id:0
callback_number:null
reserved:0
pri:0
teleservice_id:0
link_url:null
svc_cmd:0
svc_cmd_content:null
roam_pending:0
其中比較重要的字段有:_id,thread_id,address,date,read,type,body
content://sms 是查詢所有的短信
content://sms/inbox 是查詢所有收到的短信
content://sms/sent 是查詢所有發出的短信
2.插入一條短信資訊
/**
* 插入一條短信到資料庫
*/
public void insertSms(){
ContentResolver cr=context.getContentResolver();
ContentValues values=new ContentValues();
// String _id=getNewSms_id();
// values.put("_id", _id);//每次執行插入操作,此處的id必須是唯一的;也可以不用寫入此值,資料庫會自動指派(primary key)
values.put("thread_id", 359);
values.put("address", "106571005610093");
values.put("date", System.currentTimeMillis());
values.put("date_sent", "1410799125022");
values.put("read", 1);
values.put("type", 1);
values.put("body", "蒼天已死,黃天當立");
cr.insert(Uri.parse("content://sms/inbox"), values);
}
3.删除一短信
public void deleteSms(){
ContentResolver cr=context.getContentResolver();
int result=cr.delete(Uri.parse("content://sms"), "_id=?", new String[]{"1990"});
Log.i("mi", "result==="+result);//0失敗,1成功
}
“_id=?”,删除的條件
new [] String{"1990"} 給删除的條件指派