2

我正在尝试更新与 SIM 上的联系人关联的电话号码。我可以更新数据表的行,但更改不会传播到 SIM。更新后我将数据行转储出去;_ID 仍然相同,电话 (data1) col 有新的电话号码。当我重新启动手机时,该条目具有旧值。联系人的原始联系人号码已增加 1。关于如何使更改在 SIM 中持久存在的任何想法?(是的,我知道有些文档说不支持访问 SIM。但通讯录应用程序可以做到这一点 - 应用程序必须有一种方法来更新 SIM 卡。)可能有拼写错误 - 我必须(重新)输入在这里手动编码。

这是我用来更新行的代码。

String rawId = "87"; // provided by caller; hardcoded here for brevity
String num = "212-222-3333";   // new phone #

ContentResolver cr = ...get actvity's resolver...

Uri uri = ContactsContract.Data.CONTENT_URI;

ContentValues cv = new ContentValues();
cv.put(ContactsContract.CommonDataKinds.Phone.Number, num);

String select = ContactsContract.Data.RAW_CONTACT_ID " + " = " + rawId + " and " +
    ContactsContract.Data.MIMETYPE + " = '" + 
        ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_ITEM + "'";
String[] selectArgs = {};

cr.update(uri, cv, select, selectArgs);

捕获异常和其他细节省略。

感谢您提供任何线索!

4

0 回答 0