【Android】短信應用——短信(會話)刪除

用過Android系統手機的朋友們相比都知道,AndroidOS的短信和iOS一樣,是以會話模式展現的,這種展現方式很容易讓使用者查找以前的聊天記錄。

關於用代碼刪除短信,其實刪除的也是對話,無論是最近的,還是以前的,統統都會一併刪除。


下面來看那代碼。

首先需要得到得到短信目錄。

	ContentResolver cr;
		cr = getContentResolver();


再有就是要遍歷下所有短信。

String SMS_READ_COLUMN = "read";
String WHERE_CONDITION = SMS_READ_COLUMN + " = 0";
String SORT_ORDER = "date DESC";
int count = 0;
Cursor cursor = cr.query(Uri.parse("content://sms/inbox"),
new String[] { "_id", "thread_id", "address", "person", "date",
"body" }, WHERE_CONDITION, null, SORT_ORDER);
if (cursor != null) {
try {
count = cursor.getCount();
if (count > 0) {
cursor.moveToFirst();
threadId = cursor.getLong(1);
}
} finally {
cursor.close();
}
}


"content://sms/inbox"就是短信的所在路徑,inbox,收件箱。

上述代碼可以得到最新的一條短信。


我們需要調用一下這個方法,我們可以把這個方法。

long id = getThreadId();
		Uri mUri = Uri.parse("content://sms/conversations/" + id);
這樣就可以得到最新一跳短信的所對應的id了。

最後刪除就可以了。

		cr.delete(mUri, null, null);

別忘了在Manifest.xml中加入權限。

    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />


另外要強調的是,如果想要得到最新的收件箱信息,一定要重新獲得id;這裏的id永遠是0,但是如果直接把id用0代替,那麼刪除的就不是最新的了。

如果想刪除其他短信,只需要在遍歷的時候加上條件,讓返回的id是條件所對應的會話id就可以了,


還有一點要特別強調,這個方法只能刪除未讀的短信對話,因爲他的搜索條件是inbox,當然就是收件箱了;如果讀取了短信了,那麼Android系統就應該認定該信息不屬於收件箱了。




Demo下載:http://download.csdn.net/detail/etzmico/3975576

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章