2012-05-11 4 views

ответ

1

Лучшее, что я могу придумать, это то, что вы можете зарегистрировать ContentObserver на поставщике содержимого SMS/MMS (я думаю, это content://mms-sms), и всякий раз, когда происходят какие-либо изменения, вы получите обратный вызов. Обратите внимание, что вам нужно будет сканировать ContentProvider и сохранить его текущее состояние, а затем каждый раз, когда есть изменение, вам нужно будет найти ContentProvider, чтобы выяснить, ЧТО изменилось: нет предварительно упакованного способа получения информации о том, что пользователь удалил конкретное сообщение.

2

Просто используйте этот код

try { 
     Uri uriSms = Uri.parse("content://sms/inbox"); 
     Cursor c = context.getContentResolver().query(
       uriSms, 
       new String[] { "_id", "thread_id", "address", "person", 
         "date", "body" }, "read=0", null, null); 

     if (c != null && c.moveToFirst()) { 
      do { 
       long id = c.getLong(0); 
       long threadId = c.getLong(1); 
       String address = c.getString(2); 
       String body = c.getString(5); 
       String date = c.getString(3); 
       if (message.equals(body) && address.equals(number)) { 
        // mLogger.logInfo("Deleting SMS with id: " + threadId); 
        context.getContentResolver().delete(
          Uri.parse("content://sms/" + id), "date=?", 
          new String[] { <your date>}); 
        Log.e("log>>>", "Delete success........."); 
       } 
      } while (c.moveToNext()); 
     } 
    } catch (Exception e) { 
     Log.e("log>>>", e.toString()); 
    } 
+1

Это не дает ответа на вопрос. Вопрос заключается в том, как определить, что произошло удаление. Не удалять. – KVISH

Смежные вопросы