[QUESTION]
如何解决备份与恢复应用中部分联系人清除冗余失败?
[ANSWER]
出现冗余的原因在于号码信息中包含格式化的空格信息,在保存联系人信息的时候去掉号码的格式化信息芯方式
修改文件:ContactsProvider2.java
修改内容:
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java
index 51e5124..482829c 100644
--- a/src/com/android/providers/contacts/ContactsProvider2.java
+++ b/src/com/android/providers/contacts/ContactsProvider2.java
@@ -2996,6 +2996,14 @@ public class ContactsProvider2 extends AbstractContactsProvider
mValues.put(DataColumns.MIMETYPE_ID, mDbHelper.get().getMimeTypeId(mimeType));
mValues.remove(Data.MIMETYPE);
+ if (mimeType.equals(Phone.CONTENT_ITEM_TYPE)) {
+ String number = mValues.getAsString(Phone.NUMBER);
+ if (!TextUtils.isEmpty(number)) {
+ number = PhoneNumberUtils.stripSeparators(number);
+ mValues.put(Phone.NUMBER, number);
+ }
+ }
+
DataRowHandler rowHandler = getDataRowHandler(mimeType);
final SQLiteDatabase db = mDbHelper.get().getWritableDatabase();
id = rowHandler.insert(db, mTransactionContext.get(), rawContactId, mValues);
网友评论