如何将默认自定义铃声设置为特定联系人

时间:2014-09-18 14:58:55

标签: android android-contacts

我有自定义铃声的联系人列表,我需要将特定联系人的铃声重置为默认值。

如上所述here,设置CUSTOM_RINGTONE URI时:“如果为null或缺少,则使用默认铃声。” 由于“put”不接受null,我传递空字符串(“”),如下面的代码所示,它运行,似乎没问题(如果我去那个联系人,它在铃声字段上显示“默认”)

然而,当该联系人致电时,手机应用程序崩溃了!

(如果我转到该联系人并手动设置默认值,再次 - 没有崩溃......)

如何将铃声字段设置为“null或missing”?

 private void ResetContactRingTone(String idOfContact) {
     try {

        Uri contactData = ContactsContract.Contacts.CONTENT_URI;
        String contactId = contactData.getLastPathSegment();
        Uri localUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, idOfContact);
        ContentValues localContentValues = new ContentValues();
        localContentValues.put(ContactsContract.Data.RAW_CONTACT_ID, contactId);
        localContentValues.put(ContactsContract.Data.CUSTOM_RINGTONE, ""); // <<----ho to set here "null or missing"?
        getContentResolver().update(localUri, localContentValues, null, null);
     }catch (Exception ex) {
         Log.e(TAG, "ResetContactRingTone failed, Excpetion: " + ex.getMessage());
     }          
 }

1 个答案:

答案 0 :(得分:4)

找到解决方案:

替换此

localContentValues.put(ContactsContract.Data.CUSTOM_RINGTONE, "");

用这个

localContentValues.putNull(ContactsContract.Data.CUSTOM_RINGTONE);

它有效!