1. Khai báo quyền ở AndroidManifest.xml
-- Khai báo quyền ở AndroidManifest.xml
-- Xin cấp quyền trước khi sử dụng
-- Xem tại đây: /android/uses-permission/
2. Tạo Class: FileDownloadManager
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import android.os.Environment; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class FileDownloadManager { public static String download(String link) { try{ String path = Environment.getExternalStorageDirectory().getPath(); path += "/Buoi11/" + System.currentTimeMillis() + ".html"; URL url = new URL(link); URLConnection connection = url.openConnection(); InputStream inputStream = connection.getInputStream(); byte[] b = new byte[1024]; int count = inputStream.read(b); File f = new File(path); f.getParentFile().mkdirs(); f.createNewFile(); FileOutputStream fileOutputStream = new FileOutputStream(f); while (count>0){ fileOutputStream.write(b,0,count); count = inputStream.read(b); } inputStream.close(); fileOutputStream.close(); return path; } catch (Exception ex){ ex.printStackTrace(); return null; } } } |
3. Sử dụng: MainActivity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
private static final int WHAT_FINISH_DOWNLOAD = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); } private void initViews() { btnDownload = findViewById(R.id.btn_download); btnDownload.setOnClickListener(this); btnDownload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startDownload(); } }); } private void startDownload() { Thread download = new Thread(new Runnable() { @Override public void run() { String link = "https://www.google.com/"; String path = FileDownloadManager.download(link); Message msg = new Message(); msg.what = WHAT_FINISH_DOWNLOAD; msg.obj = path; handler.sendMessage(msg); } }); download.start(); } private Handler handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (msg.what == WHAT_FINISH_DOWNLOAD) { String path = msg.obj.toString(); Toast.makeText(MainActivity.this, path, Toast.LENGTH_SHORT).show(); btnDownload.setEnabled(true); } } }; </h2> |