Tja har inte jätte stor koll men borde vara där det magiska ska ske. Borde vara något i stil med nedan, testa du om du kan få det att fungera...
Kod:
ProgressDialog dlDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView v = new WebView(this);
setContentView(v);
v.loadUrl("http://joynes.se/release/index.php?place=files&dir=music/mp3");
v.getSettings().setJavaScriptEnabled(true);
v.setWebViewClient(new WebViewClientDemo());
v.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(final String url, String userAgent,
String contentDisposition, String mimetype, long contentLength) {
dlDialog = new ProgressDialog(Main.this);
dlDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dlDialog.setTitle("Downloading File");
dlDialog.setMax((int)contentLength);
dlDialog.show();
new Thread(new Runnable() {
public void run()
{
String filePath = "sdcard/";
InputStream is = null;
OutputStream os = null;
URLConnection URLConn = null;
try
{
URL fileUrl;
byte[] buf;
int ByteRead = 0;
int ByteWritten=0;
fileUrl= new URL(url);
URLConn = fileUrl.openConnection();
is = URLConn.getInputStream();
String fileName = url.substring(url.lastIndexOf("/") +1);
os = new BufferedOutputStream(new FileOutputStream(filePath + fileName));
buf = new byte[1024];
while ((ByteRead = is.read(buf)) != -1) {
os.write(buf, 0, ByteRead);
ByteWritten += ByteRead;
final int tmpWritten = ByteWritten;
runOnUiThread(new Runnable() {
public void run()
{
dlDialog.setProgress(tmpWritten);
}
});
}
dlDialog.dismiss();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}).start();
}
});
}
private class WebViewClientDemo extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Edit: Uppdaterade koden då den inte fungerade(hade inte testat den), även om du inte använder den kan det finnas nån annan som kanske kan ha nytta av den.