package com.edupointbd.amirul.pdfreaderdemo1; import android.content.ActivityNotFoundException; import android.content.Intent; import android.graphics.Color; import android.graphics.Typeface; import android.net.Uri; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.widget.TextView; import android.widget.Toast; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Testpdf extends AppCompatActivity { TextView tv_loading; String dest_file_path = "test.pdf"; int downloadedSize = 0, totalsize; String download_file_url = "....................._result.pdf"; float per = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_testpdf); tv_loading = new TextView(this); setContentView(tv_loading); tv_loading.setGravity(Gravity.CENTER); tv_loading.setTypeface(null, Typeface.BOLD); downloadAndOpenPDF(); } private void downloadAndOpenPDF() { new Thread(new Runnable() { public void run() { try { Uri path = Uri.fromFile(downloadFile(download_file_url)); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(path, "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); } catch (ActivityNotFoundException activityNotFoundException) { activityNotFoundException.printStackTrace(); // throw activityNotFoundException; } catch (Exception otherException) { otherException.printStackTrace(); throw otherException; } } }).start(); } File downloadFile(String dwnload_file_path) { File file = null; try { URL url = new URL(dwnload_file_path); HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); // connect urlConnection.connect(); // set the path where we want to save the file File SDCardRoot = Environment.getExternalStorageDirectory(); // create a new file, to save the downloaded file file = new File(SDCardRoot, dest_file_path); FileOutputStream fileOutput = new FileOutputStream(file); // Stream used for reading the data from the internet InputStream inputStream = urlConnection.getInputStream(); // this is the total size of the file which we are // downloading totalsize = urlConnection.getContentLength(); setText("Starting PDF download..."); // create a buffer... byte[] buffer = new byte[1024 * 1024]; int bufferLength = 0; while ((bufferLength = inputStream.read(buffer)) > 0) { fileOutput.write(buffer, 0, bufferLength); downloadedSize += bufferLength; per = ((float) downloadedSize / totalsize) * 100; setText("Total PDF File size : " + (totalsize / 1024) + " KB\n\nDownloading PDF " + (int) per + "% complete"); } // close the output stream when complete // fileOutput.close(); setText("Download Complete. Open PDF Application installed in the device."); } catch (final MalformedURLException e) { setTextError("Some error occured. Press back and try again.", Color.RED); } catch (final IOException e) { setTextError("Some error occured. Press back and try again.", Color.RED); } catch (final Exception e) { setTextError( "Failed to download image. Please check your internet connection.", Color.RED); } return file; } void setTextError(final String message, final int color) { runOnUiThread(new Runnable() { public void run() { tv_loading.setTextColor(color); tv_loading.setText(message); } }); } void setText(final String txt) { runOnUiThread(new Runnable() { public void run() { tv_loading.setText(txt); } }); } }
Wednesday, October 11, 2017
pdf download from server using progressbar in android studio
Labels:
android,
pdf download