以下是我的代码,用于更新联系人并设置其成功运行的自定义铃声,但它无效,我使用的是API 9
sound = new File(folder,SONG);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, sound.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "1-800-hotlinebling");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
values.put(MediaStore.Audio.Media.ARTIST, "Umair Ali");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, true);
values.put(ContactsContract.Data.RAW_CONTACT_ID, contactID);
values.putNull(ContactsContract.Data.CUSTOM_RINGTONE);
Uri localUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, contactID);
getContentResolver().update(localUri, values, null, null);
答案 0 :(得分:0)
在StackOverflow类似问题Setting contact custom ringtone, how?中,您会找到答案
我发现它是如何工作的。您可以在下面看到固定的代码:
Uri contactData = ContactsContract.Contacts.CONTENT_URI; String contactId = contactData.getLastPathSegment(); Cursor localCursor = managedQuery(contactData, PROJECTION, null, null, null); localCursor.move(120/*CONTACT ID NUMBER*/); String str1 = localCursor.getString(localCursor.getColumnIndexOrThrow("_id")); String str2 = localCursor.getString(localCursor.getColumnIndexOrThrow("display_name")); Uri localUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, str1); ContentValues localContentValues = new ContentValues(); localContentValues.put(ContactsContract.Data.RAW_CONTACT_ID, contactId); localContentValues.put(ContactsContract.Data.CUSTOM_RINGTONE, f.getAbsolutePath()+"/Adventure.ogg"); getContentResolver().update(localUri, localContentValues, null, null); Toast.makeText(this, "Ringtone assigned to: " + str2, 0).show();
只需将联系人ID号码更改为您想要的联系人ID即可 变化
希望有所帮助