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

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

/system/media/audio/ringtones

系统来电铃声

/system/media/audio/notifications

系统通知铃声

/system/media/audio/alarms

系统闹钟铃声

自己下载的铃声,可以放在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;

}

}

下面是运行效果图:

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

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

android 设置默认铃声,我的Android进阶之旅------gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声,android进阶...相关推荐

  1. android判断通知铃声是否静音模式

    前几天的项目中,当收到新消息了,需要铃声通知,我调用了 mediaPlayer.setDataSource(context, RingtoneManager.getDefaultUri(Rington ...

  2. android 设置默认铃声,Android系统修改默认铃声

    Andriod手机的铃声默认保存在system/media/audio/下面,有四个文件夹,分别是alarms,notifications,ringtones,ui.对应闹钟.通知.铃声.UI音效.r ...

  3. android通过代码设置铃声_我想在国产安卓系统,用上这些超好用的原生 Android 功能...

    2019 年 7 月曾经写过一篇文章揭露 Android 定制系统「阉割」密码管理器现象的文章,虽然从我自己微不足道的影响力出发这样的文章甚至都算不上「揭露」,但 2020 年我在用的 ColorOS ...

  4. Android 设置铃声——给app设置自定义铃声功能

    因为有个需求是在自己的app中添加铃声并播放,而之前在网上查阅了相关的资料却大多都是教人怎么设置手机来电.闹钟等手机系统的功能,所以就以此文章作为记录. 一.本篇文章的大致内容是: 1.调用系统铃声界 ...

  5. Android 设置铃声

    在网上找了很多关于铃声设置的,不晓得怎么回事就是没测试通过,后来换了另外一种方式解决了.回过头来看了一下原理是一样的,于是就把两者合并到了一起.原理:首先根据传进来的绝对路径来查询传进来路径的歌曲是否 ...

  6. android intent铃声选择,Android 设置系统铃声和系统音量

    android系统铃声设置 public class Main extends Activity { /** Called when the activity is first created. */ ...

  7. android 设置铃声文件夹在哪里,Android 设置铃声的文件夹

    Android 设置铃声的文件夹 1 系统自带声音文件存放的位置和内容. 1.1 总目录:/system/media/audio 1.2 闹钟:/system/media/audio/alarms 1 ...

  8. android 设置应用程序 默认值

    Android中有时打开一个文件,系统会弹出一个应用程序选择列表供你选择.如果你把某个应用程序设为默认值,则不会弹出选择框,而会直接调用该程序. 设置方法如下: PackageManager pm = ...

  9. android设置默认程序和清除默认设置

    以设置和清除默认浏览器为例. 1.检查是否已经设置了默认 [java]  view plain copy private void testGetDefaultActivity() { Package ...

  10. android设置默认程序清除默认设置

    以设置和清除默认浏览器为例. 1.检查是否已经设置了默认 private void testGetDefaultActivity() {PackageManager pm = getPackageMa ...

最新文章

  1. centos 脚本基础练习1
  2. 零基础如何学爬虫技术?
  3. Spark跟Flink的常见问题
  4. LintCode 402: Continuous Subarray Sum
  5. vue的matcher_vue-router工作原理概述和问题分析
  6. 【结论】串串串(nowcoder 20107-A)
  7. ruby hash方法_Ruby中带有示例的Hash.flatten方法
  8. Eureka服务注册源码分析
  9. mos管的rc吸收电路计算_MOS/CMOS集成电路简介及N沟道MOS管和P沟道MOS管
  10. Python入门语法知识点合集
  11. 2021年,产品经理是否仍在招聘风口?多年火热是否只是泡沫?
  12. Silverlight3 加载其他xap
  13. IP地址、子网掩码、网络地址之间相关的计算
  14. 石子合并,四边形不等式优化(Buy Candy,玲珑杯 Round#6 A lonlife 1066)
  15. java 输出26个大小写字母
  16. Blast中文手册(6)
  17. DNS不能解析外网与正确设置DNS的技术分享
  18. Java图标对应的文件类型
  19. 输出斐波拉契数列前30项,每行5个
  20. YTU oj 3631 树的高度

热门文章

  1. 深富策略鸿蒙概念股继续领跌
  2. el-table使用span-method合并行
  3. ubuntu18.04下的屏幕亮度调节问题
  4. php小型购物网站,PHP实现一个多功能购物网站
  5. Activity切换闪屏问题
  6. 个人最喜欢的几款火狐扩展
  7. 火狐插件 测试浏览器兼容性_在Firefox中测试和报告插件兼容性
  8. (转)金蝶KIS迷你版、标准版在查询数量金额明细账时提示“发生未知错误,系统当前操作被取消,请与金蝶公司联系”...
  9. OpenHarmony命令行工具hdc_std使用总结
  10. python+selenium自动化软件测试(第1章)