gpt4 book ai didi

android - 从服务器下载文件到手机

转载 作者:行者123 更新时间:2023-11-30 02:13:51 25 4
gpt4 key购买 nike

我无法从服务器将文件下载到 Android 手机上的指定路径,但运行此代码时没有任何反应。
我已经在 list 文件中使用了所有必需的权限:

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

这是我的 MainActivity 类:

private final String PATH = "/storage/sdcard0/BT/";


public void DownloadFromUrl(String fileName1) { //this is the downloader method
try {

URL url = new URL(f);

File file = new File(fileName1);


HttpURLConnection ucon = (HttpURLConnection) url.openConnection();

ucon.setRequestMethod("GET");
ucon.setDoOutput(true);
ucon.connect();
FileOutputStream fos = new FileOutputStream(file);

InputStream is = ucon.getInputStream();

BufferedInputStream bis = new BufferedInputStream(is);


ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}

/* Convert the Bytes read to a String. */
// FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
fos.close();
// Log.d("ImageManager", "download ready in"
// + ((System.currentTimeMillis() - startTime) / 1000)
// + " sec");

} catch (IOException e) {
Log.d("ImageManager", "Error: " + e);
}

}

最佳答案

在 Android 中,您不能在主线程上运行与网络相关的任务,指南指定主线程用于 UI 任务。

为了执行网络操作,例如下载文件、执行GET 和POST 请求以及其他各种请求,您需要使用AsyncTask

有很多方法可以实现 AsyncTask,你可以在 Stack Overflow 和其他网站上找到很多例子,我将在下面链接一些:

请参阅我提供的指南,了解如何使用 AsyncTask 在应用后台执行长时间运行的任务。

弄清楚基本概念后应该不会太难用

关于android - 从服务器下载文件到手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29705982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com