SIMの連絡先に関連付けられている電話番号を更新しようとしています。データテーブルの行を更新することはできますが、変更がSIMに反映されません。更新された後、データ行をダンプします。_IDは同じままですが、phone(data1)列には新しい電話番号があります。電話の電源を入れ直すと、エントリの値は古いものになります。連絡先の生の連絡先番号が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);
キャッチ例外およびその他の詳細は省略されています。
手がかりをありがとう!