在开始之前,我知道我正在使用代码中已弃用的 API 调用来管理联系人,这是因为我正在尝试扩展现有库而无需对其进行太多更改。我不介意改变它,但是那里的东西太多了,我只是在试验一个想法,不想再写一个完整的框架。
所以现在谈到这个问题,我正在尝试更新联系人,但到目前为止我还没有得到任何结果。我可以创建和删除联系人。他们都在模拟器中工作。当我尝试更新时,我实际上收到了一个非法参数异常:空值消息。相关代码如下。
Uri uri = Uri.parse(fullUri);
ContentValues updateValues = new ContentValues();
// updateValues.put(Contacts.People.DISPLAY_NAME, value);
updateValues.put(Contacts.People.NAME, value);
contentResolver.update(uri, updateValues, null, null);
下面是我的堆栈跟踪
12-30 00:45:05.819: RpcServer:101(2592): java.lang.IllegalArgumentException: Empty values
12-30 00:45:05.819: RpcServer:101(2592): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)
12-30 00:45:05.819: RpcServer:101(2592): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
12-30 00:45:05.819: RpcServer:101(2592): at android.content.ContentProviderProxy.update(ContentProviderNative.java:507)
12-30 00:45:05.819: RpcServer:101(2592): at android.content.ContentResolver.update(ContentResolver.java:990)
12-30 00:45:05.819: RpcServer:101(2592): at com.fun.rpc.SimpleServer$ConnectionThread.run(SimpleServer.java:91)
有没有人见过这个问题?我尝试将 ID 作为 where 子句的一部分发送,但这也不起作用。此外,如果我尝试更新电子邮件地址,代码不会引发任何错误,但联系人的电子邮件地址不会得到更新。但是当我尝试更新名称时,我得到了上述错误。请问有什么提示或想法吗?如果您需要更多信息,请告诉我。
干杯