我正在尝试更新与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);
忽略了捕获异常和其他细节。
感谢您提供任何线索!