Android 在原始联系人(新联系人)中插入自定义铃声
我想在联系人中添加自定义铃声(在创建联系人之前) 我使用此代码成功地在联系人(已创建)中添加了自定义铃声: 因此,现在,我尝试在rawcontact(尚未创建的新联系人)中插入自定义铃声。我已尝试使用以下代码:Android 在原始联系人(新联系人)中插入自定义铃声,android,addressbook,contactscontract,ringtone,rawcontacts,Android,Addressbook,Contactscontract,Ringtone,Rawcontacts,我想在联系人中添加自定义铃声(在创建联系人之前) 我使用此代码成功地在联系人(已创建)中添加了自定义铃声: 因此,现在,我尝试在rawcontact(尚未创建的新联系人)中插入自定义铃声。我已尝试使用以下代码: changesToCommit.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValueBackReference(Con
changesToCommit.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValueBackReference(ContactsContract.RawContacts._ID, 0)
.withValue(ContactsContract.RawContacts.CUSTOM_RINGTONE, ringtone_uri_string)
.build());
但它不起作用。有什么想法吗?
自定义铃声
是一个联系人
表格字段,而不是原始联系人
您需要引用联系人id,而不是原始联系人id,因此在插入新的原始联系人时,我不确定这是否可行
编辑
你说得对,好像我错过了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);
ArrayList ops=new ArrayList();
添加(ContentProviderOperation.newInsert(RawContacts.CONTENT\uURI)
.withValue(RawContacts.ACCOUNT类型,“我的帐户类型”)
.withValue(RawContacts.ACCOUNT\u NAME,“我的帐户\u NAME”)
.withValue(RawContacts.CUSTOM\u铃声、铃声\u uri\u字符串)
.build());
//在此处添加多个Data.CONTENT\u URI行,例如:
add(ContentProviderOperation.newInsert(Data.CONTENT\u URI)
.带ValueBackReference(Data.RAW\u CONTACT\u ID,0)
.withValue(Data.MIMETYPE、StructuredName.CONTENT\u ITEM\u TYPE)
.withValue(StructuredName.DISPLAY_NAME,“Bob Dylan”)
.build());
...
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
您确定自定义铃声
不是联系人字段吗?在文档中,我在联系人
列中看到自定义铃声
,但在原始联系人
列中也看到:
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);