网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声、通知声音、闹钟声音和所有声音功能的方法。
首先写一个常量类(定义想要设置为那种铃声的标示):
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();
}
}
分享到:
相关推荐
【Android手机铃声软件源码】是一个专门为Android操作系统设计的应用程序源代码,它允许用户自定义和管理他们的手机铃声。这个源码包可能包含了实现这一功能的各种组件和模块,如音频文件处理、用户界面设计、数据库...
这篇文档将深入解析《Android 手机铃声软件源码》这一项目,旨在为学习者提供一份详尽的Android应用开发教程,特别是针对毕业设计和论文撰写的学生。这个项目不仅涵盖了基本的Android应用构建,还涉及到自定义铃声...
在深入探讨这个“Android应用源码之手机铃声软件源代码”之前,首先我们要理解Android系统的基本架构和应用程序开发的基础。Android是一个开源的操作系统,基于Linux内核,由Google主导并由开放手持设备联盟(OHA)...
综上所述,开发一个Android手机铃声软件不仅需要掌握Android平台的基本开发技能,还要熟悉音频处理、UI设计、资源管理以及系统权限等多方面的知识。通过理解和实践这些知识点,可以构建出一个功能齐全、用户体验良好...
这个"Android手机铃声软件源码"项目提供了一个宝贵的参考资料,便于开发者深入理解和实践Android应用开发。以下是基于该源码项目的一些主要知识点: 1. **Android SDK与Java编程**: - 项目使用Java语言编写,这是...
通过分析这个Android手机铃声软件的源码,开发者不仅可以学习到如何在Android平台上实现一个完整的应用,还能深入理解Android系统的多媒体处理、用户界面设计以及权限管理等方面的知识,对于提升Android开发技能...
本文将详细介绍如何在Android手机上设置自定义铃声,并探讨相关技术。 首先,Android系统提供了一个方便的界面供用户管理手机的铃声。用户可以通过“设置”应用中的“声音与振动”选项来更改各种类型的铃声。然而,...
描述中的内容重复了标题,即“安卓Android源码——手机铃声软件源代码.rar”,这表明提供的压缩包可能是一个完整的开发项目,包含实现手机铃声选择、设置和管理功能的所有源代码文件。 【标签解析】 "安卓 android ...
【Android应用源码之手机铃声软件源代码.zip】是一个包含Android应用开发相关的资源包,主要涉及的是一个手机铃声管理软件的源代码。通过分析这个压缩包中的内容,我们可以深入学习Android应用开发,特别是与音频...
《Android手机铃声软件开发详解》 在移动设备领域,Android操作系统以其开源、灵活的特点深受开发者喜爱。本篇文章将深入探讨一个特殊的Android应用——手机铃声软件的开发,通过分析提供的"Android应用源码之手机...
源码中,开发者可能使用了Java的面向对象特性,如类、对象、继承、封装和多态性,以及各种API来实现手机铃声的功能。 三、Apache技术 标签中的“apache”可能指的是Apache Commons或Apache HTTP Client等项目。在...
总的来说,实现Android手机的自动接听电话和免提功能,需要深入理解Android的事件处理机制、无障碍服务、音频管理和定时任务。通过合理地结合这些技术,可以创建一个高效且可靠的自动接听电话的应用。当然,实际开发...
在Android系统中,闹钟服务是开发者常用的功能之一,...在`AlarmTest`项目中,你可以找到实现这些功能的具体代码。通过理解并实践这些知识点,你可以根据个人需求定制自己的闹钟应用,使其更灵敏、更方便地服务于用户。
《Android手机小闹钟源码解析》 在Android开发领域,构建一款实用的手机小闹钟应用是一项常见的任务。这份“手机小闹钟源码”为我们提供了一个宝贵的实践案例,让我们深入理解Android应用开发的核心技术和设计思路...
5.5 实现手机震动效果 5.6 图文提醒效果 5.7 状态栏提醒 5.8 检索通讯录 5.8.1 实现原理 5.8.2 contentprovider介绍 5.8.3 具体实现 5.9 文件管理 5.10 还原手机桌面 5.11 置换背景图 5.12 修改和删除文件 5.12.1 ...
综上所述,通过使用`AudioManager`提供的API,我们可以灵活地控制Android设备的铃声和振动模式,从而实现更加丰富的用户体验。希望本文能帮助您更好地理解和掌握Android中的铃声与振动控制技术。