Программирование под Android. Перехват входящих смс

Здравствуй, уважаемое Хабрасообщество! Совсем недавно решил попробовать себя в программировании под Android. Пишу приложение, суть которого в том, что оно перехватывает все входящие сообщения и если какое-либо сообщение удовлетворяет некоторым условиям, то оно тут же удаляется.

После перехвата сообщения я имею экземпляр SmsMessage. Я пытаюсь удалить его следующим образом:
Uri deleteUri = Uri.parse("content://sms");
context.getContentResolver().delete(
	deleteUri,
	"address=? and date=?",
	new String[] {sms.getOriginatingAddress(), String.valueOf(sms.getTimestampMillis())});

После выполнения указанных действий смс сообщение остается в папке «Входящие».

Я решил просмотреть всю папку «Входящие» следующим образом:
Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms, null,null,null,null);
while (c.moveToNext())
{
	String body = c.getString(c.getColumnIndex("body"));
	long data = c.getLong(c.getColumnIndex("date"));
	String address = c.getString(c.getColumnIndex("address"));
}
c.close();

Выясняется, что data и sms.getTimestampMillis() отличаются примерно на 200 миллисекунд. То есть where условие в запросе на удаление не выполняется.

Может я что-то делаю неправильно? Прошу Вашей помощи.

UPD: Может как-то можно обработать входящую смс раньше самой системы, чтобы пользователь даже уведомления не увидел?
  • Вопрос задан
  • 11625 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы