0
Android 용 백업 응용 프로그램 (주로 연락처 및 SMS 메시지)을 개발 중입니다. 백업은 문제가되지 않지만 연락처를 Android 데이터베이스에 다시 쓰는 것은 문제가됩니다.Android에 연락처 삽입
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 1)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, "Joe")
.withValue(StructuredName.FAMILY_NAME, "Bloggs")
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,1)
.withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "086555555")
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
.build());
try{
ctx.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}catch(Exception e){
e.printStackTrace();
}
모두가 RAW_CONTACT_ID에 달려 같다 :
이것은 내가 지금까지있는 것입니다. 처음에는 연락처가없는 에뮬레이터를 사용하고 있습니다. 첫 번째 연락처 생성 (RAW_CONTACT_ID = 0)에서 작동하지만 RAW_CONTACT_ID가 1 이상인 초기 연락처 다음에 연락처가 생성 된 것 같지 않습니다. 아무도 이런 경우에 어떤 아이디어가 있습니까? 내가 무슨 짓을
이 많은 도움이 아닌 것 : 당신이 얻는 대신에 정확한 값을 넣어 않는 이유 백업 연락처에서 모든 키 및 값 (일명 contentValues)을 의미합니까? 이렇게하면 필수 입력란을 놓치지 않습니다 ... –