Android系统的铃声

  Android本身提供了一些默认的铃声文件,这些文件都放在“/system/media/audio”目录中。

  如果是我们自己下载的铃声文件,这些文件都放在“/sdcard/music”目录中

它们有3个共同的子目录
  [ringtones来电,alarms闹钟,notifications警告或通知铃声]

  系统启动时,加载铃声同时检测/system/media/audio和/sdcard/music/

设置铃声分两个步骤  

  1,根据相应action启动系统设置
  2,从系统设置中取得用户选择的结果,调用RingtoneManager.setActualDefaultRingtoneUri来设置

下面是启动系统设置铃声activity时的action

  RingtoneManager.TYPE_RINGTONE:设置来电铃声

  RingtoneManager.TYPE_ALARM:设置闹钟铃声

  RingtoneManager.TYPE_NOTIFICATION:设置通知铃声

示例

 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 /*
 9  * 设置铃声的应用
10  * 分为两个步骤:
11  * 1,根据相应action启动系统设置
12  * 2,从系统设置中取得用户选择的结果,调用RingtoneManager.setActualDefaultRingtoneUri来设置
13  */
14 public class Main extends Activity {
15     /** Called when the activity is first created. */
16     @Override
17     public void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.main);
20 
21     }
22     /*
23      * 启动设置来电铃声activity
24      */
25     public void onClick_Call_Ringtone(View view) {
26         //1,指定action 为RingtoneManager.ACTION_RINGTONE_PICKER
27         Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
28 
29         //2,传入数据
30         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_RINGTONE);
31         //3,设置activity启动后的标题
32         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电铃声");
33         //4,注意用startActivityForResult启动.
34         startActivityForResult(intent, 1);
35     }
36     /*
37      * 启动设置闹钟声activity
38      */
39     public void onClick_Alarm_Ringtone(View view) {
40         //1,指定action 为RingtoneManager.ACTION_RINGTONE_PICKER
41         Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
42 
43         //2,传入数据
44         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_ALARM);
45         //3,设置activity启动后的标题
46         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置闹钟声");
47         //4,注意用startActivityForResult启动.
48         startActivityForResult(intent, 2);
49     }
50     /*
51      * 启动设置通知声activity
52      */
53     public void onClick_Notification_Ringtone(View view) {
54         //1,指定action 为RingtoneManager.ACTION_RINGTONE_PICKER
55         Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
56 
57         //2,传入数据
58         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION);
59         //3,设置activity启动后的标题
60         intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置通知声");
61         //4,注意用startActivityForResult启动.
62         startActivityForResult(intent, 3);
63     }
64     /*
65      * 系统设置界面的返回结果回调
66      */
67     @Override
68     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
69         if (resultCode != RESULT_OK) {
70             return;
71         }
72         //从设置界面返回的用户选择结果,它是个uri,
73         Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
74 
75         if (uri != null) {
76             switch (requestCode) {
77             case 1: //设置来电铃声
78                 //RingtoneManager的静态方法.setActualDefaultRingtoneUri来设置
79                 RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_RINGTONE, uri);
80                 break;
81             case 2: //设置闹钟声
82                 //RingtoneManager的静态方法.setActualDefaultRingtoneUri来设置
83                 RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_ALARM, uri);
84                 break;
85             case 3://设置通知声
86                 //RingtoneManager的静态方法.setActualDefaultRingtoneUri来设置
87                 RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_NOTIFICATION, uri);
88                 break;
89             default:
90                 break;
91             }
92         }
93     }
94 }

 

相关文章:

  • 2021-05-16
  • 2021-04-21
  • 2021-11-18
  • 2021-06-28
  • 2022-12-23
  • 2021-11-29
  • 2021-09-29
猜你喜欢
  • 2022-12-23
  • 2021-12-11
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
  • 2022-12-23
  • 2021-12-16
相关资源
相似解决方案