您的位置:首页 > 移动开发 > Android开发

Android 指定的音乐设置成个人铃声

2015-12-22 16:49 537 查看
在网上搜了一大圈的相关材料。设置个人铃声一直设置不成功,后来找了下原因,是需要将音乐的路径设置成Uri才行,这样就设置成功了。

首先贴一下将制定的音乐设置成个人的铃声:

Uri uri = Uri.fromFile(new File(音乐路径));
ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.CUSTOM_RINGTONE, uri.toString());
MyApp.getInstance().getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, values, ContactsContract.Contacts._ID + " = " + 联系人的ID, null) ;


就这样子就可以设置了。

然后我再贴一下使用手机自带的铃声设置成个人铃声的代码:

private void doPickRingtone() {

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
// Allow user to pick 'Default'
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
// Show only ringtones
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
// Don't show 'Silent'
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);

Uri ringtoneUri;
if (mCustomRingtone != null) {
ringtoneUri = Uri.parse(mCustomRingtone);
} else {
// Otherwise pick default ringtone Uri so that something is selected.
ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
}

// Put checkmark next to the current ringtone for this contact
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);

// Launch!
startActivityForResult(intent, RINGTONE_PICKED);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
}

switch (requestCode) {
case RINGTONE_PICKED: {
          // 选择完铃声之后获得选中铃音的URI,将其值存入数据库
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
handleRingtonePicked(pickedUri);
break;
}
}
}

private void handleRingtonePicked(Uri pickedUri) {
if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) {
mCustomRingtone = null;
} else {
mCustomRingtone = pickedUri.toString();
}
saveData();
}

/**
* 保存数据
*/
private void saveData() {
ContentValues values = new ContentValues();
values.put(Contacts.CUSTOM_RINGTONE, mCustomRingtone);
//这里的mContactId是当前联系人的Id
getContentResolver().update(Contacts.CONTENT_URI, values, Contacts._ID + " = " + mContactId, null) ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息