其他分享
首页 > 其他分享> > 在Android联系人上设置SEND_TO_VOICEMAIL

在Android联系人上设置SEND_TO_VOICEMAIL

作者:互联网

我正在尝试将SEND_TO_VOICEMAIL的值从0修改为1,反之亦然.
我成功修改了其他联系人的详细信息,例如姓名,电话号码,昵称,电子邮件,ecc …,但我需要更改SEND_TO_VOICEMAIL.

我尝试了很多可能性,但这应该可以工作…我猜:

        String rawContactId = "1";

        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        ops.add(
            ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
            .withSelection( Data.RAW_CONTACT_ID + "=?" , new String[] { rawContactId })
            .withValue(ContactsContract.RawContacts.SEND_TO_VOICEMAIL , 1)
            .build()
        );

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

但是logcat说:

ERROR/AndroidRuntime(822): android.database.sqlite.SQLiteException: no
such column: send_to_voicemail: , while compiling: UPDATE data SET
send_to_voicemail=? WHERE _id =?

我真的不知道该怎么尝试了.任何帮助将非常感激.
谢谢.

解决方法:

根据[手册,您要查找的SEND_TO_VOICEMAIL字段不在ContactsContract.Data表中,而是在ContactsContract.Contacts表中.似乎您正在尝试修改错误的表.

有关每个表中的字段,请参见ContactsContract.DataContactsContract.Contacts.

标签:android-contacts,android
来源: https://codeday.me/bug/20191102/1989931.html