本代码是通过http协议实现文件下载,记得在配置文件中加入对SD卡的读写权限和联网权限
先来Activity代码
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class AndroidTestActivity extends Activity {
/** Called when the activity is first created. */
private Button down;
private HttpDown http;
private String msg;
//下载进度条
private ProgressDialog mSaveDialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
down = (Button) findViewById(R.id.down);
down.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
mSaveDialog = ProgressDialog.show(AndroidTestActivity.this, "下载文件", "文件正在保存中,请稍等...", true);
//开启一个新的线程执行下载任务
new Thread(
new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
http = new HttpDown();
//获得SD卡路径
String sdpath = Environment.getExternalStorageDirectory()+"/DRMP/";
String str = "http://music.baidu.com/data/music/file?link=http://zhangmenshiting.baidu.com/data2/music/106150597/10090002354000128.mp3?xcode=56ea6c3d5f9b569dfbe9ff93fd6d8248075fef7b4684889d&song_id=100900023";
msg = http.download(str, sdpath, "1234.mp3");
messageHandler.sendMessage(messageHandler.obtainMessage());
}
}
).start();
}
});
}
private Handler messageHandler = new Handler(){
public void handleMessage(Message me){
mSaveDialog.dismiss();
Toast.makeText(AndroidTestActivity.this, msg, Toast.LENGTH_SHORT).show();
}
};
}
file工具类