Обновить значение через ContentResolver
Пытаюсь отметить смс как прочитанную, но почему-то update не происходит. Мой код:
private void ParseSms(int id) {
String where = "_id=" + id; // 4674
Uri uri = Uri.parse("content://sms");
Cursor qs = this.getContentResolver().query(uri, null, where, null, null);
if (qs.moveToFirst()){
// make sure that the message exists:
Message message = new Message();
message.Id = qs.getInt(qs.getColumnIndex("_id"));
message.Address = qs.getString(qs.getColumnIndex("address"));
message.Value = qs.getString(qs.getColumnIndex("body"));
message.IsRead = qs.getShort(qs.getColumnIndex("read"));
message.Delivered = qs.getShort(qs.getColumnIndex("status"));
message.ErrorCode = qs.getInt(qs.getColumnIndex("error_code"));
// if the message is unread, then I set its as read:
if (message.IsRead == 0)
{
ContentValues values = new ContentValues();
values.put("read", true);
int wq = this.getContentResolver().update(uri, values, where, null);
Toast toast = Toast.makeText(this, String.valueOf(wq), Toast.LENGTH_LONG);
toast.show();
}
}
}
Переменная wq у меня всегда остается равной нулю и обновления не происходит (то есть когда я читаю второй раз, значение read для смс с этим id остается равным 0 (false). Испробовал много вариаций, в том числе вместо where использовал ContentUris.withAppendedId. Но результат тот же
В разрешениях у меня стоит:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
Есть какие-либо идеи, почему обновление не происходит?