1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 我的Android进阶之旅------gt;Android系统设置默认来电铃声 闹钟铃声 通知铃声...

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

时间:2021-08-14 00:51:54

相关推荐

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

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

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

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

首先编写界面文件 layout_ring.xml

<LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/buttonRingtone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="设置来电铃声"/><Buttonandroid:id="@+id/buttonAlarm"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="设置闹钟铃声"/><Buttonandroid: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 .Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;/*** 设置系统的默认来电铃声、闹钟铃声、通知铃声* <br/>博客地址: <a href="/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. */@Overridepublic 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() {@Overridepublic void onClick(View v) {if (hasFolder(strRingtoneFolder)) {// 打开系统铃声设置Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);// 类型为来电RINGTONEintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_RINGTONE);// 设置显示的titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,"欧阳鹏设置来电铃声");// 当设置完毕之后返回到当前的ActivitystartActivityForResult(intent, CODE_RINGSTONE);}}});mButtonAlarm.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (hasFolder(strAlarmFolder)) {// 打开系统铃声设置Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);// 设置铃声类型和titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_ALARM);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,"欧阳鹏设置闹钟铃声");// 当设置完毕之后返回到当前的ActivitystartActivityForResult(intent, CODE_ALARM);}}});mButtonNotification.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (hasFolder(strNotificationFolder)) {// 打开系统铃声设置Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);// 设置铃声类型和titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,"欧阳鹏设置通知铃声");// 当设置完毕之后返回到当前的ActivitystartActivityForResult(intent, CODE_NOTIFICATION);}}});}/*** 当设置铃声之后的回调函数*/@Overrideprotected 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;}}

以下是执行效果图:

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

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

转载请保留原文地址:/ouyang_peng

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。