读书人

android设置铃声的时候f.mkdirs()创建

发布时间: 2012-03-29 12:53:12 作者: rapoo

android设置铃声的时候f.mkdirs()创建不了???
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.os.Environment;
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";

private static final String strRingtoneFolder = Environment

.getExternalStorageDirectory()

+ "/music/ringtones";

private static final String strAlarmFolder = Environment

.getExternalStorageDirectory()


+ "/music/alarms";

private static final String strNotificationFolder = Environment

.getExternalStorageDirectory()

+ "/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)
{
System.out.println("111111111111");
if (bFolder(strRingtoneFolder))
{
System.out.println("111111111111");
//打开系统铃声设置
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;
}
}

//无法创建目录那里错了??高手们帮帮忙,谢了。。。


[解决办法]
你的意思是跳到else里面去了?

你的文件夹是否已经存在,mkdirs这个方法他会创建你指定目录的父目录,如果父目录不存在的话。
[解决办法]
加上这个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

读书人网 >Android

热点推荐