首页 > 代码库 > Android开发之设置铃声

Android开发之设置铃声

首先介绍一下Android系统支持的铃声格式。有以下几种

64赫兹Midi,AAC、AAC+、AMR、WAV、MP3、Real Audio、WMA、OGG等格式。

将音频文件设置成铃声很简单,只需如下几步即可:

1) 获取系统音频文件的Uri

Uri uri =MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());//获取系统音频文件的Uri

2) 将文件插入系统媒体库,并获取新的Uri

Uri newUri = this.getContentResolver().insert(uri,values);//将文件插入系统媒体库,并获取新的Uri

3) 设置铃声

RingtoneManager.setActualDefaultRingtoneUri(this, ringType, newUri);//设置铃声

下面是设置铃声的详细代码:

 

/**
 * 设置铃声
 * @param ringType int: 铃声类型
 * @param file File: 要设为铃声的文件
 * */
protected void setRingtone(int ringType, File file) {
	// TODO Auto-generated method stub
	boolean isRingtone=false,isNotification=false,isAlarm=false,isMusic=false;
	String msg="";
	switch (ringType) {
	case ConstUtil.RING_ALARM://闹铃
		isAlarm=true;
		msg="设置闹钟铃声!";
		break;
	case ConstUtil.RING_NOTIFICATION://通知
		isNotification=true;
		msg="设置通知铃声成功!";
		break;
	case ConstUtil.RING_RINGTONE://来电
		isRingtone=true;
		msg="设置来电铃声成功!";
	case ConstUtil.RING_MUSIC://添加到铃声库(全部铃声)
		isMusic=true;
		msg="设置全部铃声成功!";
		break;
	default:
		break;
	}
	ContentValues values = new ContentValues();
	values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
	values.put(MediaStore.MediaColumns.TITLE, file.getName());
	values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
	values.put(MediaStore.Audio.Media.IS_RINGTONE, isRingtone);
	values.put(MediaStore.Audio.Media.IS_NOTIFICATION, isNotification);
	values.put(MediaStore.Audio.Media.IS_ALARM, isAlarm);
	values.put(MediaStore.Audio.Media.IS_MUSIC, isMusic);
	Uri uri = MediaStore.Audio.Media.getContentUriForPath(file
			.getAbsolutePath());//获取系统音频文件的Uri
	Uri newUri = this.getContentResolver().insert(uri, values);//将文件插入系统媒体库,并获取新的Uri
	RingtoneManager.setActualDefaultRingtoneUri(this,
			ringType, newUri);//设置铃声
	Toast.makeText(getApplicationContext(), msg,Toast.LENGTH_SHORT)
			.show();
}