扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

android瀹炵幇鏂囦欢涓嬭浇鍔熻兘

扬州沐宇科技
2023-12-19 01:46:03
android

Android瀹炵幇鏂囦欢涓嬭浇鍔熻兘鍙互浣跨敤浠ヤ笅姝ラ锛?/p>

  1. 鍦ˋndroidManifest.xml鏂囦欢涓坊鍔犵綉缁滆闂潈闄愶細
<uses-permission android:name="android.permission.INTERNET" />
  1. 鍒涘缓涓€涓紓姝ヤ换鍔$被鏉ユ墽琛屾枃浠朵笅杞芥搷浣溿€傚湪璇ヤ换鍔$被涓紝浣跨敤HttpURLConnection鎴朞kHttp绛夌綉缁滃簱鍙戦€丠TTP璇锋眰锛屽苟灏嗘枃浠朵繚瀛樺埌璁惧鐨勫瓨鍌ㄧ┖闂翠腑銆?/li>
public class DownloadFileTask extends AsyncTask<String, Integer, String> {

    private Context mContext;
    
    public DownloadFileTask(Context context) {
        mContext = context;
    }

    @Override
    protected String doInBackground(String... params) {
        String fileUrl = params[0];
        String fileName = params[1];
        try {
            URL url = new URL(fileUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.connect();

            // 鑾峰彇鏂囦欢澶у皬
            int fileLength = connection.getContentLength();

            // 鍒涘缓杈撳叆娴?/span>
            InputStream input = new BufferedInputStream(url.openStream());

            // 鍒涘缓杈撳嚭娴?/span>
            OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + fileName);

            byte[] data = new byte[1024];
            int total = 0;
            int count;
            while ((count = input.read(data)) != -1) {
                total += count;
                // 鍙戝竷杩涘害淇℃伅
                publishProgress((int) (total * 100 / fileLength));
                output.write(data, 0, count);
            }

            // 鍏抽棴娴?/span>
            output.flush();
            output.close();
            input.close();
        } catch (Exception e) {
            e.printStackTrace();
            return "涓嬭浇澶辫触";
        }
        return "涓嬭浇鎴愬姛";
    }

    @Override
    protected void onPostExecute(String result) {
        Toast.makeText(mContext, result, Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        // 鏇存柊涓嬭浇杩涘害
        Log.d("Download progress", progress[0] + "%");
    }
}
  1. 鍦ˋctivity鎴朏ragment涓皟鐢ㄨ寮傛浠诲姟绫昏繘琛屾枃浠朵笅杞斤細
String fileUrl = "http://example.com/file.txt";
String fileName = "file.txt";
DownloadFileTask downloadTask = new DownloadFileTask(this);
downloadTask.execute(fileUrl, fileName);

涓婅堪姝ラ涓紝闇€瑕佹敞鎰忕殑鏄紝鏂囦欢涓嬭浇闇€瑕佸湪鍚庡彴绾跨▼涓繘琛岋紝鎵€浠ヤ娇鐢ㄤ簡AsyncTask鏉ユ墽琛屼笅杞芥搷浣溿€傚彟澶栵紝璁板緱鍦ˋndroidManifest.xml鏂囦欢涓坊鍔犲瓨鍌ㄧ┖闂磋闂潈闄愶細

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

扫码添加客服微信