如何在API级别21中为Android中的特定联系人设置铃声?

时间:2015-02-27 11:47:53

标签: android android-contacts

我知道如何更改手机铃声,以及如何获取联系人,但如何为特定联系人设置铃声?

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, Cob.selectedPath.get(0) /*DIRECT PATH TO MP3 File*/); 
getContentResolver().update(localUri, localContentValues, null, null);
Toast.makeText(this, "Ringtone assigned to: " + str2, 0).show();

1 个答案:

答案 0 :(得分:1)

  

Android有一个专栏:   ContactsContract.CUSTOM_RINGTONE

     

所以,你可以用ContactsContract.Contacts.getLookupUri来获取你的   联系人的Uri,之后剩下的就是打电话了   ContentResolver.update

最初来自此StackOverflow answer

Cob.selectedPath.get(0) /*DIRECT PATH TO MP3 File*/);

不,“MP3文件的直接路径”不起作用。你必须使用android api来获取路径(就像我已经链接到的StackOverflow答案中那样)。希望你尽管你的评论所说的不是那样做,但我不能肯定地说,因为我不知道你Cob.selectedPath.get(0)中的内容。