2012-03-18 3 views
5

Можно создать дубликат:
Download PDF from url and read itСкачать файл в формате PDF и сохранить его в SDCard, а затем прочитать его оттуда

Я должен загрузить файл в формате PDF из URL и сохранить его SD-карту, а затем прочитать ее. я получил через множество кодов и я нашел этот

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("*url for your pdf*")); 
startActivity(browserIntent); 

, но как сохранить его в SD-карты в моей желаемой траектории, а затем прочитать его оттуда.

ответ

15

Пожалуйста, взгляните на это link.

Содержит пример вашего требования. Ниже приведена сводка информации в ссылке.

Первый шаг объявляя persmissions в AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 

Создать загрузчик класса

public class Downloader { 

    public static void DownloadFile(String fileURL, File directory) { 
     try { 

      FileOutputStream f = new FileOutputStream(directory); 
      URL u = new URL(fileURL); 
      HttpURLConnection c = (HttpURLConnection) u.openConnection(); 
      c.setRequestMethod("GET"); 
      c.setDoOutput(true); 
      c.connect(); 

      InputStream in = c.getInputStream(); 

      byte[] buffer = new byte[1024]; 
      int len1 = 0; 
      while ((len1 = in.read(buffer)) > 0) { 
       f.write(buffer, 0, len1); 
      } 
      f.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 
} 

Наконец создавая деятельность, которая загружает файл PDF из Интернета,

public class PDFFromServerActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String extStorageDirectory = Environment.getExternalStorageDirectory() 
     .toString(); 
     File folder = new File(extStorageDirectory, "pdf"); 
     folder.mkdir(); 
     File file = new File(folder, "Read.pdf"); 
     try { 
      file.createNewFile(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 
     Downloader.DownloadFile("http://www.nmu.ac.in/ejournals/aspx/courselist.pdf", file); 

     showPdf(); 
    } 
    public void showPdf() 
     { 
      File file = new File(Environment.getExternalStorageDirectory()+"/pdf/Read.pdf"); 
      PackageManager packageManager = getPackageManager(); 
      Intent testIntent = new Intent(Intent.ACTION_VIEW); 
      testIntent.setType("application/pdf"); 
      List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY); 
      Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      Uri uri = Uri.fromFile(file); 
      intent.setDataAndType(uri, "application/pdf"); 
      startActivity(intent); 
     } 
} 
Смежные вопросы