天天看點

Android 手機短信簡單開發

使用到的權限有:

<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"}   給删除的條件指派