Android手机铃声代码实现

网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声、通知声音、闹钟声音和所有声音功能的方法。

首先写一个常量类(定义想要设置为那种铃声的标示):

AppConstant.java

publicinterfaceAppConstant {

publicstaticfinalintRINGTONE= 0;//铃声

publicstaticfinalintNOTIFICATION= 1;//通知音

publicstaticfinalintALARM= 2;//闹钟

publicstaticfinalintALL= 3;//所有声音

}

此方法需要传入想要设置为铃声的全路径(如:/mnt/sdcard/mp3/a.mp3 ),和想要设置为那种铃声的标示:

privatevoidsetVoice(String path2,intid)

{

ContentValues cv =newContentValues();

Uri newUri =null;

Uri uri = MediaStore.Audio.Media.getContentUriForPath(path2);

//查询音乐文件在媒体库是否存在

Cursor cursor =this.getContentResolver().query(uri,null, MediaStore.MediaColumns.DATA+"=?",newString[] { path2 },null);

if(cursor.moveToFirst() && cursor.getCount() > 0)

{

String _id = cursor.getString(0);

switch(id) {

caseAppConstant.RINGTONE:

cv.put(MediaStore.Audio.Media.IS_RINGTONE,true);

cv.put(MediaStore.Audio.Media.IS_NOTIFICATION,false);

cv.put(MediaStore.Audio.Media.IS_ALARM,false);

cv.put(MediaStore.Audio.Media.IS_MUSIC,false);

break;

caseAppConstant.NOTIFICATION:

cv.put(MediaStore.Audio.Media.IS_RINGTONE,false);

cv.put(MediaStore.Audio.Media.IS_NOTIFICATION,true);

cv.put(MediaStore.Audio.Media.IS_ALARM,false);

cv.put(MediaStore.Audio.Media.IS_MUSIC,false);

break;

caseAppConstant.ALARM:

cv.put(MediaStore.Audio.Media.IS_RINGTONE,false);

cv.put(MediaStore.Audio.Media.IS_NOTIFICATION,false);

cv.put(MediaStore.Audio.Media.IS_ALARM,true);

cv.put(MediaStore.Audio.Media.IS_MUSIC,false);

break;

caseAppConstant.ALL:

cv.put(MediaStore.Audio.Media.IS_RINGTONE,true);

cv.put(MediaStore.Audio.Media.IS_NOTIFICATION,true);

cv.put(MediaStore.Audio.Media.IS_ALARM,true);

cv.put(MediaStore.Audio.Media.IS_MUSIC,false);

break;

default:

break;

}

//把需要设为铃声的歌曲更新铃声库

getContentResolver().update(uri, cv, MediaStore.MediaColumns.DATA+"=?",newString[] { path2 });

newUri = ContentUris.withAppendedId(uri, Long.valueOf(_id));

//一下为关键代码:

switch(id) {

caseAppConstant.RINGTONE:

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, newUri);

break;

caseAppConstant.NOTIFICATION:

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, newUri);

break;

caseAppConstant.ALARM:

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, newUri);

break;

caseAppConstant.ALL:

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALL, newUri);

break;

default:

break;

}

//播放铃声

//Ringtone rt = RingtoneManager.getRingtone(this, newUri);

//rt.play();

}

}

NE5532A与JRC4580在低噪声音频电路设计中的关键应用 本文深入探讨了经典运算放大器NE5532A与JRC4580在低噪声音频电路设计中的核心应用。文章从噪声模型分析入手,阐述了针对低阻抗信号源时,如何利用这两款BJT输入运放的低电流噪声特性进行优化设计。通过对比两者参数与实战守则,为设计高保真音频前级、耳机放大等电路提供了从原理图到PCB布局的完整低噪声解决方案。 阅读详情

相关推荐

解决win11无法安装.net framework 3.5(包括.net2.0和3.0)错误代码:0x80070005

解决win11无法安装.net framework 3.5(包括.net2.0和3.0)错误代码:0x80070005

zeng699304的博客 2万+

android 代码设置铃声,在Android中设置铃声

慕的地6264312解决方案是在将资源文件资产提供给内容解析器进行插入之前,先获取资源文件资产并将其写入sdcard 1st。File newSoundFile = new File("/sdcard/media/ringtone", "myringtone.oog");Uri mUri = Uri.parse("android.resource://com.your.package/R.raw....

weixin_35744893的博客 452

别再为跨页读写发愁了!STM32F407模拟I2C驱动24C256/512的避坑指南

本文详细解析了STM32F407模拟I2C驱动24C256/512的跨页写入问题,揭示了24C系列存储器'写满一页不会自动翻页'的关键机制,并提供了经过验证的分页写入算法和优化方案。通过GPIO时序优化、地址计算和错误处理等技巧,帮助开发者解决数据错乱、覆盖等常见问题,实现稳定可靠的EEPROM读写操作。

weixin_42631411的博客 377

[Audio Profile]L版本上music如何设置双卡铃声

[DESCRIPTION]   打开情景模式的设置双卡铃声的feature:MTK_MULTISIM_RINGTONE_SUPPORT,Music中却不能设置双卡铃声。 希望能在Music添加菜单“Us as SIM1/SIM2 ringtone”   [SOLUTION] 首先需要有双卡铃声的patch,这个patch是我司通过eService给的对比包。

欢迎加入Android老司机学院 482266514(技术交流群)密码优快云 836

TensorRT(C++)部署 Pytorch模型

众所周知,python训练pytorch模型得到.pt模型。但在实际项目应用中,特别是嵌入式端部署时,受限于语言、硬件算力等因素,往往需要优化部署,而tensorRT是最常用的一种方式。本文以yolov5的部署为例,说明模型部署在x86架构上的电脑端的流程。(部署在Arm架构的嵌入式端的流程类似)。

女神sha手的博客 5405

UR5双臂Gazebo仿真(Python)

近来在Gazebo上搭了一个ur5双臂仿真平台。 差不多就是以下这样。 使用rostopic list查看一下话题,如下 显然,采用/left_arm_controller/follow_joint_trajectory/goal和/right_arm_controller/follow_joint_trajectory/goal两个话题来控制双臂的运动。 现在的问题是,如何保证双臂运动的一致性,即如何能保证双臂能同时接受到以上两个消息。 思路一:设置/left_arm_controlle

qq_42823342的博客 2233

android 铃声设置流程

android 铃声设置流程讲解 一【最近更新】 总体思路为 :1.截取铃声2.保存入sd卡3.获取铃声信息4.将信息和文件路径写入数据库获得铃声Uri5.将获得的Uri设置为铃声。核心实现:在 public class DefaultRingtonePreference extends RingtonePreference { private static final...

FLY_THINK2012的博客 391

手把手教你学simulink(26.8)--控制算法场景示例:基于强化学习的无人机姿态稳定控制系统

首先,我们需要定义无人机的姿态稳定控制环境。环境包括无人机的状态(姿态角、角速度等)和动作(电机转速)。我们还需要定义奖励函数,用于评估控制器的表现。matlab深色版本% 定义环境% 定义状态空间% 12个状态变量% 定义动作空间% 电机转速范围奖励函数用于评估控制器的表现。我们可以根据无人机的姿态误差、角速度误差以及控制输入的变化率来设计奖励函数。具体来说,当无人机的姿态接近设定值时,给予正奖励;当姿态误差较大或控制输入变化剧烈时,给予负奖励。matlab深色版本。

MHD0815的博客 496

Android开发之手机铃声代码实现

如果读到的是音频文件路径,需要先将音乐文件插入到多媒体库。如:path传入:/mnt/sdcard/mp3/a.mp3 //设置--铃声的具体方法      public void setMyRingtone(String path)      {         File sdfile = new File(path);        ContentValues values = new Co

我的博客 2756

基于FPGA设计的信号分析仪(项目资料ID:28)

基于现场可编程门阵列(FPGA)设计的信号分析仪。该信号分析仪旨在实现对各类信号的精确分析,具备频率、幅度、相位等参数测量功能。通过采用 FPGA 作为核心处理单元,充分利用其并行处理能力和可重构特性,提高了系统的处理速度和灵活性。论文介绍了信号分析仪的总体设计方案,包括硬件电路设计和软件算法实现。

以培养嵌入式工程师为己任 1万+

PCL 点云拟合 最小二乘法拟合平面

在点云处理领域,最小二乘法(Least Squares)拟合是一种常用的数学方法,用于估计数据点的最佳拟合曲线或平面。平面拟合广泛应用于点云数据处理中的地面检测、物体表面分析等任务。 本文将介绍如何使用PCL库实现基于最小二乘法的平面拟合算法,通过拟合点云数据中的平面,来提取出数据的平面部分。

纵马踏花向自由 1026

android 自定义铃声 代码,Android通过代码设置铃声

对安卓手机进行铃声操作,设置默认铃声、删除当前默认铃声、更改铃声以默认振铃为例子,通过代码设置手机铃声设置默认振铃// 将铃声的路径插入contentResolver,以数据库的形式插入/*** 设置默认振铃* @param musicInfo 歌曲信息* @param ringtoneFile 振铃文件,包含绝对路径*/private void setRingtoneImpl(MusicInfo...

weixin_31859675的博客 618

在 NVIDIA DGX Spark 上运行 vLLM + Open WebUI

DGX Spark 和 GX10 都是性能强大的机器,但只有将它们视为交互式工作站而非精简版服务器,才能真正发挥它们的优势。合理利用共享资源,规划并发工作负载,并谨慎控制内存限制。做到这些,vLLM 与 Open WebUI 的结合就能成为可靠​​的日常工具,而不是脆弱的实验品。DGX平台本身价格不菲,但这并非体验此类硬件的唯一途径。多家厂商提供基于相同核心架构、价格更为亲民的系统,这些系统通常配备容量较小的固态硬盘或配置更为简化,但基本性能并未改变。

iCloudEnd的博客 1750

Android中手机声音调节步骤

Android中手机声音调节步骤: a、通过系统服务获得声音管理器: AudioManager audioManager =  (AudioManager)getSystemService(Service.AUDIO_SERVICE); b、根据实际需要调用适当的方法:(常用方法) audioManager.adjustStreamVolume(int streamType, int  d

人丑多读书 1403

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android 设置来电铃声

亲测可用(记得加权限)      /*   *   设置铃声   */  public static void setMyAlarm(Context ct,String path)  {    File sdfile = new File(path);     Uri uri = MediaStore.Audio.Media.getContentUriForPath(sdfi

凡夫俗子 739

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

设置铃声

1、权限 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 2、代码 public void setPhoneMusic() { //设置当前文件存放音乐为手机铃声 Intent intent = new Intent(Ri...

aisanhu9928的博客 171

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android java 怎么更换默认铃声,Android如何通过长按按钮将声音设置为铃声

如何长按按钮将声音设置为铃声?目前它只适用于sound4但不适用于sound5包com.test.soundboard;import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.Input...

weixin_42126668的博客 244

AndroidP 客户预置的铃声默认在铃声列表的最前面

packages/providers/MediaProvider/src/com/android/providers/media/RingtonePickerActivity.java import android.database.MatrixCursor; 在initPingtoneManager 方法里 对mCursor 进行重新赋值。 private void initRingtoneMa...

qq_44865086的博客 442

手势体感-翻转算法的实现(原创)

引子印度客户的一个需求,希望实现来电时翻转静音的功能。具体如下: 1.电话铃声到来时; 2.采取下面动作: a.手机正面翻到背面<顺时针或者逆时针旋转180度> b.手机背面翻到正面<顺时针或者逆时针旋转180度> 3.来电静音,或者你喜欢的话,可以换成翻转闹铃静音;技术点1.数据来源:ACC传感器(即重力加速度传感器) 2.翻转算法:根据翻转动作的三轴原始数据变化观察,找出

苏法迪的专栏 2001

Android实现手机静音

Android控制手机实现静音的软件实现方案

coding路上有你 1万+
上一篇: Android之Intent详解
下一篇: Android手机铃声代码实现
ehlxr
博客等级 码龄16年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值