在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.Data和ContactsContract.Contacts.
标签:android-contacts,android 来源: https://codeday.me/bug/20191102/1989931.html