Android 将文件从服务器下载到手机
我无法从服务器将文件下载到Android手机上的指定路径,但运行此代码时不会发生任何事情。Android 将文件从服务器下载到手机,android,file,download,server,Android,File,Download,Server,我无法从服务器将文件下载到Android手机上的指定路径,但运行此代码时不会发生任何事情。 我已使用清单文件中的所有必需权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="
我已使用清单文件中的所有必需权限:
<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"/>
在Android中,你不能在主线程上运行与网络相关的任务,指导原则规定主线程用于UI任务 为了执行网络操作,例如下载文件、执行GET和POST请求以及其他各种请求,您需要使用 有许多实现AsyncTask的方法,您可以在堆栈溢出和其他站点上找到许多示例,我将在下面链接一些示例:
在你弄清楚基本概念后,使用它应该不会太难你会遇到什么错误?您在logcat中看到任何堆栈跟踪吗?欢迎使用堆栈溢出!我对你的问题稍加修改。您可以通过添加相关的LogCat或服务器日志来进一步改进它。另外,我删除了“any”标记,如果您阅读该标记的描述,您将看到它是关于测试的。您可以在这里得到您的答案:您是如何调用此代码的?在每个阶段添加一些有意的日志记录,这样您就可以看到部分进展。我在logcat中没有得到任何错误,而是这个进度条过程无限继续。。。。
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);
}
}