Я разрабатываю приложение для Android, в котором хочу заменить тело сообщения из последних полученных SMS новым текстом.Как удалить последние полученные SMS из почтового ящика в Android
Я использую BroadcastReceiver
, в котором я хочу сохранить тело сообщения последних полученных SMS в переменной и удалить SMS из папки «Входящие» и «После удаления». Я хочу поместить новое закодированное сообщение во входящие.
Теперь проблема, с которой я столкнулась, заключается в том, как удалить последние полученные SMS из папки «Входящие». Я разработал код в этом отношении, но удаляю second last
(предыдущий) SMS из папки «Входящие». Пожалуйста, проверьте мой код ниже и помогите, чтобы я мог продолжить свое приложение, я был бы очень благодарен вам за этот акт доброты.
public void deleteLastSMS()
{
// abortBroadcast();
String body = null;
String num = null;
try
{
Uri uri = Uri.parse("content://sms/inbox");
Cursor c =contex.getContentResolver().query(uri, null, null ,null,null);
if(c.moveToFirst())
{
body = c.getString(c.getColumnIndexOrThrow("body")).toString();
num = c.getString(c.getColumnIndexOrThrow("address")).toString();
}
int id = c.getInt(0);
int thread_id = c.getInt(1);
Uri thread = Uri.parse("content://sms");
contex.getContentResolver().delete(thread, "thread_id=? and _id=?", new String[]{String.valueOf(thread_id), String.valueOf(id)});
}
catch(CursorIndexOutOfBoundsException ee)
{
}
}
Вы пытаетесь удалить SMS сразу после его получения? Это может быть проблема синхронизации - база данных SMS, возможно, не была обновлена, когда вы пытаетесь удалить последнее SMS. Если это не так, вы можете попробовать другие способы удаления SMS, см. Http://stackoverflow.com/questions/9389740/delete-an-sms-from-inbox –