【发布时间】:2013-06-27 18:58:07
【问题描述】:
我正在开发一个 Android 应用,我想用一些新文本替换上次收到的 SMS 的消息正文。
我正在使用BroadcastReceiver,我想将最后收到的短信的消息正文存储在一个变量中并从收件箱中删除短信,现在删除后我想在收件箱中放入一条新的编码消息。
现在我面临的问题是如何从收件箱中删除最后收到的短信。我在这方面开发了一些代码,但它从收件箱中删除了second last(previous) 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 数据库可能尚未更新。如果不是这种情况,您可以尝试其他删除短信的方法,请参阅stackoverflow.com/questions/9389740/delete-an-sms-from-inbox
标签: android