2011-10-31 10 views
0
@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle bundle = intent.getExtras(); 
    SmsMessage[] msgs = null; 

    if (bundle != null) { 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length]; 

     for (int i = 0; i < msgs.length; i++) { 
      msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      if (msgs[i].getOriginatingAddress().equals(
        SmsModuleActivity.number)) 
       deleteMessage(context, msgs[i]); 
     } 
    } 
} 

private void deleteMessage(Context context, SmsMessage msg) { 
    Uri deleteUri = Uri.parse("content://sms/inbox/"); 
    Cursor c = context.getContentResolver().query(deleteUri, null, null, 
      null, null); 
    while (c.moveToNext()) { 
     try { 
      String pid = c.getString(0); 
      String uri = "content://sms/inbox/" + pid; 
      ContentValues values = new ContentValues(); 
      values.put("read", true); 
      context.getContentResolver().update(Uri.parse(uri), values, 
        null, null); 
      context.getContentResolver().delete(Uri.parse(uri), null, null); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

수신 메일이 제거되지 않습니다. 이 번호에서 SMS를 받으면이 발신자의 오래된 SMS 만 삭제하지만 새 메시지는 삭제하지 않습니다. 받은 편지함과 돈에 도달수신 SMS 제거

int id = cursor.getInt(cursor.getColumnIndex("_id")); 
getContentResolver().delete(Uri.parse("content://sms/"), "_id="+id, null); 

답변

3

당신은 deleteMessage(context, msgs[i]) 대신에 abortBroadcast()을 사용할 수 있습니다 들어오는 SMS를 중지합니다 : 나는

+0

아니요, 새 수신 SMS를 삭제해야하지만 제거되지 않았습니다. 이 숫자에서 오래된 SMS 만 제거합니다. – user1021984

+0

첫 번째 게시물과 같은 효과가 나타납니다. – user1021984

3

이 코드를 시도 특정 번호 (. 소스 코드 참조)에서 새로운 수신 메시지를 삭제 필요 그 때 그것을 삭제할 필요가 없습니다.

+0

첫 번째 게시물과 같은 효과가 있습니다. – user1021984

+0

나는 그렇게 생각하지 않는다. 잘 작동해야합니다. –

+0

새 수신 SMS 삭제 : – user1021984

0

첫 번째 활동 수업에서 SMS를받은 후 마지막 SMS를 삭제하려면이 코드를 사용하십시오. 너의 mainfest 파일에 sms 읽고 쓰기 권한을 잊지 마라.

Uri uriSms = Uri.parse("content://sms/"); 
      Cursor c = getContentResolver().query(uriSms, 
       new String[] { "_id", "thread_id", "address","person", "date", "body" }, null, null, null); 
      if (c != null && c.moveToFirst()) { 

        long id = c.getLong(0); 
        getContentResolver().delete(Uri.parse("content://sms/" + id), null, null); 

      }`enter code here`