gpt4 book ai didi

java - 在 android 中以编程方式更新联系人姓名会导致模拟器出现非法参数异常

转载 作者:行者123 更新时间:2023-11-29 09:07:32 24 4
gpt4 key购买 nike

在我开始之前,我知道我正在代码中使用已弃用的 API 调用来管理联系人,这是因为我正在尝试扩展现有库而不必对其进行太多更改。我不介意改变它,但那里有太多东西,我只是在试验一个想法,不想再写一个完整的框架。

所以现在开始讨论这个问题,我正在尝试更新联系人,但到目前为止我没有任何进展。我能够创建和删除联系人。他们都在模拟器中工作。但是,当我尝试更新时,我实际上收到了 illegalargumentexception: empty values 消息。相关代码如下。

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 子句的一部分发送,但这也不起作用。此外,如果我尝试更新电子邮件地址,代码不会引发任何错误,但联系人的电子邮件地址不会得到更新。但是当我尝试更新名称时,出现了上述错误。请问有什么提示或想法吗?如果您需要更多信息,请告诉我。

干杯

最佳答案

我参加聚会迟到了,但我的回答如下。

我遇到了同样的错误。

java.lang.IllegalArgumentException: Empty values
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.update(ContentProviderNative.java:572)
at android.content.ContentResolver.update(ContentResolver.java:1672)
...

我在尝试更改 MediaStore.Images.Media.BUCKET_ID 字段时遇到了同样的错误。虽然字段 MediaStore.Images.Media.DESCRIPTION 已毫无问题地更改。

您可能会猜到,BUCKET_ID 字段用作多个表的关键字段。如果您了解数据库开发理论。因此,不允许更改此类关键字段

在您的例子中,这样一个( protected )字段是 Contacts.People.NAME

更新。来自 src:

图像的桶 ID。这是从 DATA 列自动计算的只读属性。

关于java - 在 android 中以编程方式更新联系人姓名会导致模拟器出现非法参数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com