我的Android进阶之旅------>Android系统设置默认来电铃声、闹钟铃声、通知铃声

时间:2023-12-29 20:48:32

首先了解Android系统本身提供的默认铃声文件,这些文件都放在  /system/media/audio  文件夹下。

/system/media/audio/ringtones  
系统来电铃声
/system/media/audio/notifications 
系统通知铃声
/system/media/audio/alarms
系统闹钟铃声

我的Android进阶之旅------>Android系统设置默认来电铃声、闹钟铃声、通知铃声

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

自己下载的铃声。能够放在SD卡的music文件夹。主要包含:一般的铃声(如来电铃声)、闹钟铃声和通知铃声。这三种铃声分别放在例如以下的文件夹中:

/sdcard/music/ringtones   
用户来电铃声
/sdcard/music/notifications 
用户通知铃声
/sdcard/music/alarms 
用户闹钟铃声

以下通过一个实例来学习怎样设置系统的默认来电铃声、闹钟铃声、通知铃声

首先编写界面文件  layout_ring.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonRingtone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置来电铃声"
/>
<Button
android:id="@+id/buttonAlarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置闹钟铃声"
/>
<Button
android:id="@+id/buttonNotification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置通知铃声"
/>
</LinearLayout>

RingstonActivity.java文件
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* 设置系统的默认来电铃声、闹钟铃声、通知铃声
* <br/>博客地址: <a href="blog.csdn.net/ouyang_peng">欧阳鹏CSDN博客</a>
* @author 欧阳鹏
*
*/
public class RingstonActivity extends Activity {
/* 3个按钮 */
private Button mButtonRingtone;
private Button mButtonAlarm;
private Button mButtonNotification; /* 自己定义的类型 */
public static final int CODE_RINGSTONE = 0;
public static final int CODE_ALARM = 1;
public static final int CODE_NOTIFICATION = 2;
/**
* 来电铃声目录
* /system/media/audio/ringtones 系统来电铃声
* /sdcard/music/ringtones 用户来电铃声
*/
private String strRingtoneFolder = "/system/media/audio/ringtones";
// private String strRingtoneFolder = "/sdcard/music/ringtones";
/**
* 闹钟铃声目录
* /system/media/audio/alarms 系统闹钟铃声
* /sdcard/music/alarms 用户闹钟铃声
*/
private String strAlarmFolder = "/system/media/audio/alarms";
// private String strAlarmFolder = "/sdcard/music/alarms ";
/**
* 闹钟铃声目录
* /system/media/audio/notifications 系统通知铃声
* /sdcard/music/notifications 用户通知铃声
*/
private String strNotificationFolder = "/system/media/audio/notifications";
// private String strNotificationFolder = "/sdcard/music/notifications"; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_ring);
mButtonRingtone = (Button) findViewById(R.id.buttonRingtone);
mButtonAlarm = (Button) findViewById(R.id.buttonAlarm);
mButtonNotification = (Button) findViewById(R.id.buttonNotification);
mButtonRingtone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (hasFolder(strRingtoneFolder)) {
// 打开系统铃声设置
Intent intent = new Intent(
RingtoneManager.ACTION_RINGTONE_PICKER);
// 类型为来电RINGTONE
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_RINGTONE);
// 设置显示的title
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
"欧阳鹏设置来电铃声");
// 当设置完毕之后返回到当前的Activity
startActivityForResult(intent, CODE_RINGSTONE);
}
}
});
mButtonAlarm.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (hasFolder(strAlarmFolder)) {
// 打开系统铃声设置
Intent intent = new Intent(
RingtoneManager.ACTION_RINGTONE_PICKER);
// 设置铃声类型和title
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_ALARM);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
"欧阳鹏设置闹钟铃声");
// 当设置完毕之后返回到当前的Activity
startActivityForResult(intent, CODE_ALARM);
}
}
});
mButtonNotification.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (hasFolder(strNotificationFolder)) {
// 打开系统铃声设置
Intent intent = new Intent(
RingtoneManager.ACTION_RINGTONE_PICKER);
// 设置铃声类型和title
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
"欧阳鹏设置通知铃声");
// 当设置完毕之后返回到当前的Activity
startActivityForResult(intent, CODE_NOTIFICATION);
}
}
});
}
/**
* 当设置铃声之后的回调函数
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) {
return;
}
// 得到我们选择的铃声
Uri pickedUri = data
.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (pickedUri != null) {
switch (requestCode) {
case CODE_RINGSTONE:
// 将我们选择的铃声设置成为默认来电铃声
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_RINGTONE, pickedUri);
break;
case CODE_ALARM:
// 将我们选择的铃声设置成为默认闹钟铃声
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_ALARM, pickedUri);
break;
case CODE_NOTIFICATION:
// 将我们选择的铃声设置成为默认通知铃声
RingtoneManager.setActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_NOTIFICATION, pickedUri);
break;
}
}
} /**
* 检測是否存在指定的目录,假设不存在则创建
*
* @param strFolder
* 目录路径
*/
private boolean hasFolder(String strFolder) {
boolean btmp = false;
File f = new File(strFolder);
if (!f.exists()) {
if (f.mkdirs()) {
btmp = true;
} else {
btmp = false;
}
} else {
btmp = true;
}
return btmp;
}
}


以下是执行效果图:

我的Android进阶之旅------&gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声我的Android进阶之旅------&gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声我的Android进阶之旅------&gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">我的Android进阶之旅------&gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声




                            ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

====================================================================================

我的Android进阶之旅------&gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声