首先,介紹一下Android系統支持的鈴聲格式。java
有下面幾種: this
64赫茲Midi,AAC、AAC+、AMR、WAV、MP三、Real Audio、WMA、OGG等格式。spa
將音頻文件設置成鈴聲很是easy。僅僅需例如如下幾步就能夠:code
1) 獲取系統音頻文件的Uriget
Uri uri =MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());//獲取系統音頻文件的Uri博客
2) 將文件插入系統媒體庫,並獲取新的Uriit
Uri newUri = this.getContentResolver().insert(uri,values);//將文件插入系統媒體庫。並獲取新的Uriio
3) 設置鈴聲ast
RingtoneManager.setActualDefaultRingtoneUri(this, ringType, newUri);//設置鈴聲class
如下是設置鈴聲的具體代碼:
/** * 設置鈴聲 * @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(); }