我需要从 Android 中的以下 URL 下载 pdf。知道如何做到这一点:
http://bkinfo.in/Murli/1305/EME-26-05-2013.pdf
同样有一个mp3: http ://bkinfo.in/Murli/1305/26-05-2013.mp3
欣赏这些想法..
最后......这是我使用的完整代码。可能对某人有用..将这些添加到清单中:
确保您的 AVD 可以写入 SDCard(如果您正在写入卡)。您可以通过在 AVD Manager 中将内存块分配给 SDCard 来设置它。
public class MainActivity extends Activity {
static ProgressDialog pd;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pd = new ProgressDialog(this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setCancelable(false);
AsyncTaskTest at = new AsyncTaskTest();
at.execute();
}
public class AsyncTaskTest extends AsyncTask<Void, Integer, Integer> {
Session s = null;
protected void onPreExecute(){
pd.show();
}
protected Integer doInBackground(Void... vd){
try{
String[] urls = new String[3];
urls[0] = "http://bkinfo.in/Murli/1305/HMS-25-05-2013.pdf";
urls[1] = "http://bkinfo.in/Murli/1305/EME-25-05-2013.pdf";
urls[2] = "http://bkinfo.in/Murli/1305/25-05-2013.mp3";
String fileName = urls[2].substring(urls[2].lastIndexOf("/")+1); //Coupying the mp3
URL url = new URL(urls[2]);
URLConnection conection = url.openConnection();
conection.setConnectTimeout(10000);
conection.connect();
int lenghtOfFile = conection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream(),8192);
OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory()+"/"+fileName);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1){
total += count;
output.write(data, 0, count);
publishProgress((int) ((total * 100) / lenghtOfFile));
}
output.flush();
output.close();
input.close();
}catch(Exception e){
Log.e("MyError:",e.toString());
}
return 0;
}
protected void onProgressUpdate(Integer... msg) {
pd.setProgress(msg[0]);
}
protected void onPostExecute(Integer in){
pd.dismiss();
showDialog("Done !");
}
private void showDialog(String msg){
final AlertDialog.Builder alertBox = new AlertDialog.Builder(new ContextThemeWrapper(MainActivity.this, android.R.style.Theme_Dialog));
alertBox.setMessage(msg);
alertBox.setCancelable(false)
.setPositiveButton("Ok", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int id){
dialog.cancel();
}
}).show();
}
}
}