2017-01-12 32 views
0

(연락처를 만들기 전에) rawcontact에 사용자 정의 벨소리를 추가하고 싶습니다. (새 연락처가 아직 생성되지rawcontact에 사용자 정의 벨소리 삽입 (새 연락처)

String select = ContactsContract.Contacts._ID + "=?"; 
String[] args = new String[]{getAndroidId()}; 

changesToCommit.add(ContentProviderOperation.newUpdate(ContactsContract.Contacts.CONTENT_URI) 
     .withSelection(select, args) 
     .withValue(ContactsContract.Contacts.CUSTOM_RINGTONE, ringtone_uri_string) 
     .build()); 

그래서 지금, 나는 rawcontact에서 사용자 지정 벨소리를 삽입하려고 :

나는 (이미 생성) 연락처에 사용자 정의 벨소리를 추가 succes에이 코드를 사용). 이 코드를 사용해 보았습니다.

changesToCommit.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) 
        .withValueBackReference(ContactsContract.RawContacts._ID, 0) 
        .withValue(ContactsContract.RawContacts.CUSTOM_RINGTONE, ringtone_uri_string) 
        .build()); 

그러나 작동하지 않습니다. 어떤 아이디어?

답변

0

CUSTOM_RINGTONEContacts이 아니며 RawContacts이 아닙니다.

raw-contact-id가 아닌 contact-id를 참조해야하므로 새로운 원시 연락처를 삽입하는 동안 가능하지는 않습니다. 내가 RawContacts에 다른 CUSTOM_RINGTONE 필드를 놓친 것 같은

편집

네 말이 맞아 보인다. 당신이 CUSTOM_RINGTONE`이 RawContacts의 필드 아니다`확인

ArrayList ops = new ArrayList<ContentProviderOperation>(); 
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) 
    .withValue(RawContacts.ACCOUNT_TYPE, "my_account_type") 
    .withValue(RawContacts.ACCOUNT_NAME, "my_account_name") 
    .withValue(RawContacts.CUSTOM_RINGTONE, ringtone_uri_string) 
    .build()); 
// Add multiple Data.CONTENT_URI rows here, e.g.: 
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
    .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
    .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
    .withValue(StructuredName.DISPLAY_NAME, "Bob Dylan") 
    .build()); 
... 
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
+0

위치 :이 경우 , 나는,이 원시 연락처를 추가하는 최초의 호출의 일부가되어야이 같은 생각? 문서에서'Contacts' 열뿐만 아니라'RawContacts' 열의'CUSTOM_RINGTONE'을 봅니다 : [Doc RawContacts] (https://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html) – Maestro

+0

@Maestro 당신이 맞을 것 같아요, 내 편집 참조 – marmor