【问题标题】:Insert a custom ringtone in a rawcontact (new contact)在 rawcontact 中插入自定义铃声(新联系人)
【发布时间】:2017-05-27 19:30:28
【问题描述】:

我想在 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());

但它不起作用。有什么想法吗?

【问题讨论】:

    标签: android addressbook contactscontract ringtone rawcontacts


    【解决方案1】:

    CUSTOM_RINGTONEContacts 表字段,而不是 RawContacts

    您需要引用联系人 ID,而不是原始联系人 ID,因此我不确定在插入新的原始联系人时是否可行。

    编辑

    你说得对,好像我错过了 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);
    

    【讨论】:

    • 您确定CUSTOM_RINGTONE 不是RawContacts 的字段吗?在文档中,我在Contacts 列中看到CUSTOM_RINGTONE,但也在RawContacts 列中看到:Doc RawContacts
    猜你喜欢
    • 2012-02-03
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    相关资源
    最近更新 更多