在Android联系人上设置SEND_TO_语音邮件
我正在尝试将SEND_to_VOICEMAIL的值从0修改为1,反之亦然。 我成功地修改了其他联系人的详细信息,如姓名、号码、昵称、电子邮件、ecc。。。但我需要把SEND_改成语音信箱 我尝试了很多可能性,但这应该行得通。。。我想:在Android联系人上设置SEND_TO_语音邮件,android,android-contacts,Android,Android Contacts,我正在尝试将SEND_to_VOICEMAIL的值从0修改为1,反之亦然。 我成功地修改了其他联系人的详细信息,如姓名、号码、昵称、电子邮件、ecc。。。但我需要把SEND_改成语音信箱 我尝试了很多可能性,但这应该行得通。。。我想: String rawContactId = "1"; ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperatio
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();
}
字符串rawContactId=“1”;
ArrayList ops=新的ArrayList();
补充行动(
ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT\u URI)
.withSelection(Data.RAW_CONTACT_ID+“=?”,新字符串[]{RAW contactid})
.withValue(contacts contract.raw contacts.SEND_TO_语音信箱,1)
.build()
);
试一试{
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
}捕获(远程异常){
e、 printStackTrace();
}捕获(操作应用程序异常e){
e、 printStackTrace();
}
但是logcat说:
错误/AndroidRuntime(822):android.database.sqlite.SQLiteException:否
此列:发送至语音信箱:,编译时:更新数据集
发送到语音信箱=?其中_id=
我真的不知道该试什么了。任何帮助都将不胜感激。
谢谢。根据[手册],您要查找的“发送到”语音邮件字段不在Contacts contract.Data表中,而是在Contacts contract.Contacts表中。您似乎试图修改错误的表
有关每个表中的字段,请参见和。最好通过
ContentProvider
联系人进行修改。CONTENT\u URI
:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newUpdate(Contacts.CONTENT_URI)
.withSelection(Contacts._ID + "=?", new String[]{hmout.get("cid").toString()})
.withValue(Contacts.SEND_TO_VOICEMAIL, 1)
.build());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
Log.e("Exception: ", e.getMessage());
}
ArrayList ops=new ArrayList();
添加(ContentProviderOperation.newUpdate(Contacts.CONTENT\u URI)
.withSelection(Contacts._ID+“=?”,新字符串[]{hmout.get(“cid”).toString()})
.withValue(Contacts.SEND_TO_语音信箱,1)
.build());
试试{
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
}捕获(例外e){
Log.e(“异常:,e.getMessage());
}
谢谢,这就是答案!我刚刚将“Contacts contract.Data”更改为“Contacts contract.Contacts”。我在三星S3上遇到问题,有人吗?SEND\u to\u VOICEMAIL
标记来电工作吗?还是在来电前设置它工作?