远程下载音乐为手机铃声核心代码(RingtoneManager与铃声存放路径)

第一步 需判断/sdcard/music/ringtones是否存在文件夹。

File file = new File(/sdcard/music/ringtones);

if ( !file.exists() ){

if (file.mkdirs ){

}

}else{

}

第二步 取得用户输入的文件路径的文件拓展名与文件名

String strExt = strURL.substring( strURL.lastIndexOf(" . ")+1,strURL.length()).toLowerCase();

String strNam = StrURL.substring (strURL.lastIndexOf(" / ")+1,strURL.lastIndexOf(".");

第三步 创建线程在线程中取得远程文件

Runnable r = new Runnable{

public void run(){

try{

getDateSource(strPath);//调用自己定义的取得文件的方法 此方法相当于下载资源

}catch(){

}

}

}

new Thread(r).start();

public void getDateSource(String strPath) {

if( ! URLUtil.isNetworkUrl(strPath)){ //判断路径是否符合网址规则

}else{

URL url = new URL(strPath);

URLConnection conn = url.openConnection();

conn.connect();

InputStream in = conn.getInputStream();

File myfile = new File("/sdcard/music/ringtones" ,strExt +" . "+strNam);//创建暂存文件

String currentFile = myfile.getAbsolutePath();//得到所创建文件的路径

FileOutPutStream out = new FileOutPutStream( myfile );

byte b [] = new byte [128] ;

do{

int inread = in.read(b);

if( inread<= 0){

break;

}

out.write(b,0,inread);

}while(true);

//开启RingtoneManager进行铃声选择

string uri = null;

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);//设定铃声

/* 设定显示铃声的文件夹 */
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_RINGTONE);
/* 设定显示铃声开头 */
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设定铃声");
if (uri != null)
{
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(uri));
} else
{
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,(Uri) null);
}
startActivityForResult(intent, RINGTONE_PICKED);

in .close();

}

}

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode != RESULT_OK)
{
return;
}
switch (requestCode)
{
case (RINGTONE_PICKED):
try
{
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (pickedUri != null)
{
RingtoneManager.setActualDefaultRingtoneUri(EX08_09.this, RingtoneManager.TYPE_RINGTONE, pickedUri);
}
} catch (Exception e)
{
e.printStackTrace();
}
break;
default:
break;
}

super.onActivityResult(requestCode, resultCode, data);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值