我有自定义铃声的联系人列表,我需要将特定联系人的铃声重置为默认值。
如上所述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());
}
}
答案 0 :(得分:4)
找到解决方案:
替换此
localContentValues.put(ContactsContract.Data.CUSTOM_RINGTONE, "");
用这个
localContentValues.putNull(ContactsContract.Data.CUSTOM_RINGTONE);
它有效!