批量更新短信内容的权限

时间:2015-09-03 08:30:01

标签: android android-contentresolver

我想通过applyBatch方法更新短信机构。我想知道我应该在以下代码中使用哪个AUTHORITY。我怎样才能将applyBatch()第一个参数用于短信?

Uri mSmsinboxQueryUri = Uri.parse("content://sms");

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    Set<String> keys = map.keySet();
    String where = "_id = ?";

    for(String k : keys) {
        String body = map.get(k);
        ops.add(
                ContentProviderOperation.newUpdate(mSmsinboxQueryUri).withSelection(where, new String[]{k})
                        .withValue(Telephony.Sms.BODY, body)
                        .withYieldAllowed(true)
                        .build());
    }

    try {
        getContentResolver().
                applyBatch(ContactsContract.AUTHORITY, ops);
    } catch (RemoteException e) {
        e.printStackTrace();
    } catch (OperationApplicationException e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

根据this帖子,"sms"

也在这个link中的android源代码中定义了像这样的权限

private static final String AUTHORITY = "mms-sms";

所以你的操作应该是:

getContentResolver().applyBatch("sms",ops); // if it throws exception use "mms-sms" 

对我来说很好。