2017-01-12 22 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でカスタム着信音を挿入しよう)。私はこのコードで試した:

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を参照する必要があるため、新しい未使用の連絡先を挿入する際にはそれが可能かどうかはわかりません。

EDIT

そうだね、私はRawContactsで、他のCUSTOM_RINGTONEフィールドを見逃しているように、思えます。 は、その場合には、私は、これは生の接触を追加するための最初の呼び出しの一部である必要があり、このようなものだと思う:

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

を、あなたは 'CUSTOM_RINGTONE'がRawContactsの分野ではないことを確認していますか?ドキュメントでは、 'Contacts'カラムの' CUSTOM_RINGTONE'だけでなく、 'RawContacts'カラムも参照してください:[Doc RawContacts](https://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html) – Maestro

+0

@Maestroあなたが正しいと思う、私の編集を参照してください – marmor

関連する問題