이 블로그 검색

2012년 2월 1일 수요일

안드로이드 SMS, MMS 삭제

*SMS(단문 문자)와 MMS(장문 문자)가 지우는 로직이 다르다 ~!!  --> 엄청 헤멤.

안드로이드 개발 문서가 빈약함을 절실하게 느낀다.. ㅜㅜ
ContentResolve에 쓰이는 URI에 대한 설명이 어디에도 없다.. ;;
어떻게 알고 쓰라고?!

 public void deleteSpecifiedSMSHistory(ArrayList<String>address){

Uri uri = Uri.parse("content://sms");         //우선 Content URI가 다르다.


Uri uri_mms = Uri.parse("content://mms");

          ContentResolver contentResolver = getContentResolver();
  for (int i = 0; i < address.size(); i++) {
String where = "address = " + "'" + address.get(i) + "'";
Cursor cursor = contentResolver.query(uri, null, where, null, null);
Cursor cursor_mms = contentResolver.query(uri_mms, null, where, null, null) ;

while (cursor.moveToNext()) {      // Delete SMS
long thread_id = cursor.getLong(1);   // SMS는 thread_id 값을
Uri thread = Uri.parse("content://sms/conversations/"+ thread_id);
getContentResolver().delete(thread, null, null);
}

while(cursor_mms.moveToNext()){   //Delete MMS
long _id = cursor_mms.getLong(0);   // MMS는 _id 값을 가져와야 정상적으로 삭제가 된다 !! 이것을 누가 알까? 

Uri thread = Uri.parse("content://mms/inbox/" + _id);
getContentResolver().delete(thread, null, null);
}
}
    }

댓글 2개:

  1. 삭제 막 생각하고 구글링 중이라 잘 모르지만 ...
    믿음이 가는 깔끔한 글 인상적이네요.
    베껴 두고 공부해야겠습니다.
    감사합니다.

    답글삭제
  2. 삭제 막 생각하고 구글링 중이라 잘 모르지만 ...
    믿음이 가는 깔끔한 글 인상적이네요.
    베껴 두고 공부해야겠습니다.
    감사합니다.

    답글삭제