Android系统的铃声
Android本身提供了一些默认的铃声文件,这些文件都放在“/system/media/audio”目录中。如果是我们自己下载的铃声文件(一般为mp3音频文件),可以放在SD卡的music目录。铃声主要有3种:一般的铃声(如来电铃声)、闹钟铃声和通知铃声。这3种铃声要分别放在如下的目录。
/sdcard/music/ringtones:一般的铃声,如来电铃声。
/sdcard/music/alarms:闹钟铃声。
/sdcard/music/notifications:警告或通知铃声。
调用铃声设置窗口
RingtoneManager.TYPE_RINGTONE:设置来电铃声
RingtoneManager.TYPE_ALARM:设置闹钟铃声
RingtoneManager.TYPE_NOTIFICATION:设置通知铃声
Demo
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical" > 6 7 <Button 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 android:onClick="onClick_Call_Ringtone" 11 android:text="设置来电铃声" /> 12 13 <Button 14 android:layout_width="fill_parent" 15 android:layout_height="wrap_content" 16 android:onClick="onClick_Alarm_Ringtone" 17 android:text="设置闹铃声音" /> 18 19 <Button 20 android:layout_width="fill_parent" 21 android:layout_height="wrap_content" 22 android:onClick="onClick_Notification_Ringtone" 23 android:text="设置通知铃声" /> 24 25 </LinearLayout>
1 import android.app.Activity; 2 import android.content.Intent; 3 import android.media.RingtoneManager; 4 import android.net.Uri; 5 import android.os.Bundle; 6 import android.view.View; 7 8 public class Main extends Activity { 9 10 @Override 11 public void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.main); 14 15 } 16 17 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 18 if (resultCode != RESULT_OK) { 19 return; 20 } 21 Uri uri = data 22 .getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 23 24 if (uri != null) { 25 switch (requestCode) { 26 case 1: // 来电铃声 27 RingtoneManager.setActualDefaultRingtoneUri(this, 28 RingtoneManager.TYPE_RINGTONE, uri); 29 30 break; 31 case 2: // 闹钟铃声 32 RingtoneManager.setActualDefaultRingtoneUri(this, 33 RingtoneManager.TYPE_ALARM, uri); 34 break; 35 case 3: 36 RingtoneManager.setActualDefaultRingtoneUri(this, 37 RingtoneManager.TYPE_NOTIFICATION, uri); 38 break; 39 default: 40 break; 41 } 42 } 43 } 44 45 public void onClick_Call_Ringtone(View view) { 46 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 47 48 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 49 RingtoneManager.TYPE_RINGTONE); 50 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电铃声"); 51 startActivityForResult(intent, 1); 52 } 53 54 public void onClick_Alarm_Ringtone(View view) { 55 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 56 57 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 58 RingtoneManager.TYPE_ALARM); 59 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置闹钟铃声"); 60 startActivityForResult(intent, 2); 61 } 62 63 public void onClick_Notification_Ringtone(View view) { 64 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 65 66 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, 67 RingtoneManager.TYPE_NOTIFICATION); 68 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置通知铃声"); 69 startActivityForResult(intent, 3); 70 } 71 72 }
1 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>