铃声设置项目 ------ android应用开发揭秘
2012-05-26 09:16
477 查看
Activity01.java
package com.yarin.android.Examples_07_08;
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.widget.Button;
public class Activity01 extends Activity
{
/* 3个按钮 */
private Button mButtonRingtone;
private Button mButtonAlarm;
private Button mButtonNotification;
/* 自定义的类型 */
public static final int ButtonRingtone= 0;
public static final int ButtonAlarm= 1;
public static final int ButtonNotification= 2;
/* 铃声文件夹 */
private String strRingtoneFolder = "/sdcard/music/ringtones";
private String strAlarmFolder = "/sdcard/music/alarms";
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.main);
mButtonRingtone = (Button) findViewById(R.id.ButtonRingtone);
mButtonAlarm = (Button) findViewById(R.id.ButtonAlarm);
mButtonNotification = (Button) findViewById(R.id.ButtonNotification);
/* 设置来电铃声 */
mButtonRingtone.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
if (bFolder(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, ButtonRingtone);
}
}
});
/* 设置闹钟铃声 */
mButtonAlarm.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
if (bFolder(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, ButtonAlarm);
}
}
});
/* 设置通知铃声 */
mButtonNotification.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
if (bFolder(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, ButtonNotification);
}
}
});
}
/* 当设置铃声之后的回调函数 */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
if (resultCode != RESULT_OK)
{
return;
}
switch (requestCode)
{
case ButtonRingtone:
try
{
//得到我们选择的铃声
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
//将我们选择的铃声设置成为默认
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_RINGTONE, pickedUri);
}
}
catch (Exception e)
{
}
break;
case ButtonAlarm:
try
{
//得到我们选择的铃声
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
//将我们选择的铃声设置成为默认
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_ALARM, pickedUri);
}
}
catch (Exception e)
{
}
break;
case ButtonNotification:
try
{
//得到我们选择的铃声
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
//将我们选择的铃声设置成为默认
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_NOTIFICATION, pickedUri);
}
}
catch (Exception e)
{
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
//检测是否存在指定的文件夹
//如果不存在则创建
private boolean bFolder(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;
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择下面按钮来设置铃声"
/>
<Button
android:id="@+id/ButtonRingtone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="设置来电铃声"
/>
<Button
android:id="@+id/ButtonAlarm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="设置闹钟铃声"
/>
<Button
android:id="@+id/ButtonNotification"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="设置通知铃声"
/>
</LinearLayout>
package com.yarin.android.Examples_07_08;
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.widget.Button;
public class Activity01 extends Activity
{
/* 3个按钮 */
private Button mButtonRingtone;
private Button mButtonAlarm;
private Button mButtonNotification;
/* 自定义的类型 */
public static final int ButtonRingtone= 0;
public static final int ButtonAlarm= 1;
public static final int ButtonNotification= 2;
/* 铃声文件夹 */
private String strRingtoneFolder = "/sdcard/music/ringtones";
private String strAlarmFolder = "/sdcard/music/alarms";
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.main);
mButtonRingtone = (Button) findViewById(R.id.ButtonRingtone);
mButtonAlarm = (Button) findViewById(R.id.ButtonAlarm);
mButtonNotification = (Button) findViewById(R.id.ButtonNotification);
/* 设置来电铃声 */
mButtonRingtone.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
if (bFolder(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, ButtonRingtone);
}
}
});
/* 设置闹钟铃声 */
mButtonAlarm.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
if (bFolder(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, ButtonAlarm);
}
}
});
/* 设置通知铃声 */
mButtonNotification.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
if (bFolder(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, ButtonNotification);
}
}
});
}
/* 当设置铃声之后的回调函数 */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
if (resultCode != RESULT_OK)
{
return;
}
switch (requestCode)
{
case ButtonRingtone:
try
{
//得到我们选择的铃声
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
//将我们选择的铃声设置成为默认
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_RINGTONE, pickedUri);
}
}
catch (Exception e)
{
}
break;
case ButtonAlarm:
try
{
//得到我们选择的铃声
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
//将我们选择的铃声设置成为默认
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_ALARM, pickedUri);
}
}
catch (Exception e)
{
}
break;
case ButtonNotification:
try
{
//得到我们选择的铃声
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
//将我们选择的铃声设置成为默认
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(Activity01.this, RingtoneManager.TYPE_NOTIFICATION, pickedUri);
}
}
catch (Exception e)
{
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
//检测是否存在指定的文件夹
//如果不存在则创建
private boolean bFolder(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;
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择下面按钮来设置铃声"
/>
<Button
android:id="@+id/ButtonRingtone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="设置来电铃声"
/>
<Button
android:id="@+id/ButtonAlarm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="设置闹钟铃声"
/>
<Button
android:id="@+id/ButtonNotification"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="设置通知铃声"
/>
</LinearLayout>
相关文章推荐
- 闹钟设置项目 ---- android应用开发揭秘
- android应用开发揭秘examples_04-11笔记(DatePicker,TimePicker时间日期设置,略有改动)
- 录音项目源代码 ----- Android 应用开发揭秘
- Android开发铃声的设置与播放
- Android应用开发揭秘的第29个程序12_5_Gfopengllw修改版和高仿版的源码注释
- android应用开发揭秘例example4-7笔记(RadioGroup和RadioButton的使用与改进)
- Android系统应用开发(六)Android framework系统默认设置修改
- Android小项目合集(经典教程)包含十五个Android开发应用实例
- Android开发环境搭建和项目各文件介绍应用安装和启动过程
- Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
- 关于使用eclipse开发android应用,更换jdk1.8之后遇到的eclipse闪退以及更换jdk1.7之后运行项目报错:Unsupported major.minor version 52.0
- Android应用开发揭秘的第一个程序HelloAndroid修改版和高仿版的源码注释
- 使用IntelliJ IDEA(androidstudio前身)开发android移动应用前的基本设置,提高开发效率
- Android应用开发揭秘里的EX_03_02获取联系人号码的获取方法的修正
- android应用开发揭秘examples_04-08笔记(CheckBox的使用)
- Android开发,在一个项目中调用(启用)已经安装的第三方apk应用软件
- Android开发_如何获取和设置android系统铃声和音量大小
- Android应用开发揭秘的第9个程序5_4_canvas修改版和高仿版的源码注释
- Android多媒体应用开发系列(二) 项目重构以及连拍和定时自动拍照的实现
- Android应用开发笔记 - 项目代码2