将短信设置为在Android中读取

将短信设置为在Android中读取,android,sms,Android,Sms,在我的应用程序中,我需要读取来自一个数字的短信,当我收到它时,我需要将其设置为自动读取,而不在sms android应用程序中进行设置,而是从我的应用程序中进行设置。我该怎么办? 谢谢 一个简短的例子: Uri uri = Uri.parse("content://sms/inbox"); Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); while (cursor.moveToNex

在我的应用程序中,我需要读取来自一个数字的短信,当我收到它时,我需要将其设置为自动读取,而不在sms android应用程序中进行设置,而是从我的应用程序中进行设置。我该怎么办? 谢谢

一个简短的例子:

Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
while (cursor.moveToNext()) {
  // Retrieve sms
  // see column "address" for comparing

  // Then update the sms and set the column "read" to 1
}
让我更新一下:

ContentValues values = new ContentValues();
values.put("read",true);
getContentResolver().update(Uri.parse("content://sms/"),values, "_id="+SmsMessageId, null);

SmsMessageId是短信的
\u id
,您可以在短信数据库中找到它。

谢谢您的帮助。我有一个问题:
while(cursor.moveToNext()&&!stato){String asd=new String(cursor.getBlob(cursor.getcolumndex(“read”));Toast.makeText(context,asd,Toast.LENGTH_SHORT)。show();}
如果我在getcolumndex中设置了地址,没有问题,但是如果我设置了read或其他列名,它就不起作用。为什么?谢谢上次我为android写东西是大约一年前的事了。对不起,我不知道答案。但是sms API有几个Uri。您可以尝试将短信息写入其他短信息,如下所示content://sms/inbox 并删除收件箱中的旧邮件。您可以发布解决方案吗?这可能会帮助其他用户解决同样的问题;我忘记发布了,很抱歉,在更新内容提供商的读取状态后,默认短信应用程序仍然显示此短信未读