我在運行一個 sms 應用程序,通過使用 sms content provider 獲取所有的字段。
Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms, null,null,null,null);
_id
thread_id
address
person
date
read
status
type
subject
body
locked
使用上面的字段可以執行所有的基本操作。現在我想做一個sms鎖定狀態。如何實現?
從 status 字段我總是得到-1,這是什麼意思呢?
Sms.CONTENT_URI= Uri.parse("content://sms");
Mms.CONTENT_URI = Uri.parse("content://mms");
private void lockMessage(MessageItem msgItem, boolean locked) {
Uri uri;
if ("sms".equals(msgItem.mType)) {
uri = Sms.CONTENT_URI;
} else {
uri = Mms.CONTENT_URI;
}
final Uri lockUri = ContentUris.withAppendedId(uri, msgItem.mMsgId);
final ContentValues values = new ContentValues(1);
values.put("locked", locked ? 1 : 0);
new Thread(new Runnable() {
public void run() {
getContentResolver().update(lockUri,
values, null, null);
}
}).start();
}
要記住上面的代碼不包含在 SDK 中。