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

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

/system/media/audio/ringtones

系统来电铃声

/system/media/audio/notifications

系统通知铃声

/system/media/audio/alarms

系统闹钟铃声

Center

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

/sdcard/music/ringtones

用户来电铃声

/sdcard/music/notifications

用户通知铃声

/sdcard/music/alarms

用户闹钟铃声

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

首先编写界面文件  layout_ring.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/buttonRingtone"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="设置来电铃声"

/>

android:id="@+id/buttonAlarm"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="设置闹钟铃声"

/>

android:id="@+id/buttonNotification"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="设置通知铃声"

/>

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;

/**

* 设置系统的默认来电铃声、闹钟铃声、通知铃声

*
博客地址: 欧阳鹏CSDN博客

* @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;

}

}

以下是执行效果图:

0a8dc167d0c4a7498ed567a2c2bc7c88.png

f3433734763d575789c4279c7bc160ae.png

Center

f3c35fb5bf9d7234c413942d213f66b1.png

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

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

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

11fe44354c3e21bbbb758aadf33ab157.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值