1

私はSMSアプリに取り組んでいます。SMSコンテンツプロバイダーを使用することで、すべてのフィールドを取得しました。

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をロックした状態にします。どうすればよいですか?ステータスフィールドから常に-1が表示されます。つまり、受信トレイと送信トレイの両方で確認しました。友達を助けてください。

4

1 に答える 1

3
 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に含まれているわけではないので、使用には注意が必要です。

于 2012-08-31T06:35:38.317 に答える