首先介绍一下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(); }