0
연락처의 메일 주소를 업데이트하고 싶습니다. 작동하지 않는 것 같지만 메일 주소가 작동하지 않아이 오류가 있습니다.연락처가없는 경우 ContactsContract로 이메일 업데이트
이public static boolean updateMail(Context context, String id, String email){
ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
builder.withSelection(ContactsContract.Data.CONTACT_ID + "=? " + "AND "
+ ContactsContract.CommonDataKinds.Organization.TYPE + "=?"
, new String[]{id,
String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE_HOME)});
builder.withValue(ContactsContract.CommonDataKinds.Email.ADDRESS, email);
ops.add(builder.build());
return (applyBatch(context, ops));
}
어쩌면 내가 삽입하지 연락처가 메일 주소가없는 업데이 트를 확인해야합니다, 당신은 어떻게 생각하십니까 :
#################################################################
W/System.err: Error Code : 0 (SQLITE_OK)
W/System.err: Caused By : unknown error (code 0): Unable to convert BLOB to string
#################################################################
이 제 기능 updateMail()
입니까?
편집 :
나는이 시도하지만 어쩌면 내가 삽입하여 올바른 선택을하지 않습니다 ... 작동하지 않습니다 :
public static boolean updateMail(Context context, String id, String email){
ContentProviderOperation.Builder builder;
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
if (getMailById(context, id).isEmpty()){
builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, Integer.valueOf(id));
builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.Email.ADDRESS, email);
builder.withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_HOME);
ops.add(builder.build());
} else {
builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.Data.CONTACT_ID + "=? " + "AND "
+ ContactsContract.CommonDataKinds.Organization.TYPE + "=?"
, new String[]{id,
String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE_HOME)});
builder.withValue(ContactsContract.CommonDataKinds.Email.ADDRESS, email);
ops.add(builder.build());
}
return (applyBatch(context, ops));
}
* 연락처에 메일 주소가 없을 때 업데이트가 아닌 삽입을해야 할 수도 있습니다. * - 예, 값이 먼저 있는지 확인한 다음, '삽입'을 사용하는 것이 좋습니다. 존재하지 않습니다. – notyou
감사하지만 여전히 작동하지 않습니다. 내 질문을 편집합니다. –