2 myq 26 myq_26 于 2013.05.21 13:52 提问

使用sms content provider 锁定 sms

我在运行一个 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,这是什么意思呢?

1个回答

Baby_Bonnie
Baby_Bonnie   2013.05.21 17:16
已采纳
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 中。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!