【发布时间】:2014-09-18 14:58:55
【问题描述】:
我有一个带有自定义铃声的联系人列表,我需要将特定联系人的铃声重置为默认值。
如here 所述,在设置 CUSTOM_RINGTONE URI 时:“如果为 null 或缺失,则使用默认铃声。” 由于“put”不接受空值,我传递了空字符串(“”),如下面的代码所示,它运行并且似乎没问题(如果我去那个联系人,它在铃声字段中显示“默认”) .
但是当那个联系人来电时,手机应用程序崩溃了!
(如果我去那个联系人并手动设置默认值,再次 - 没有崩溃......)
如何将铃声字段设置为“null or 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());
}
}
【问题讨论】: